Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
1つのHowに固執しない 場面に応じた最適な選択とは?
Search
nobuoooo
July 12, 2024
47
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
1つのHowに固執しない 場面に応じた最適な選択とは?
nobuoooo
July 12, 2024
More Decks by nobuoooo
See All by nobuoooo
「すごい会議」で 振り返りが "変えることを宣言する場"になった話
nobuoooo
0
140
エンジニアよ痛みを知れ
nobuoooo
0
500
新規学習のハードルを下げる方法とは?/ How to Make Learning Something New Easier?
nobuoooo
1
330
チームにとって最適なスキルアップ施策とは何か/what-is-the-best-skill-up-approach-for-team
nobuoooo
0
390
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
460
Agile that works and the tools we love
rasmusluckow
331
22k
Making Projects Easy
brettharned
120
6.7k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
RailsConf 2023
tenderlove
30
1.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
410
Fireside Chat
paigeccino
42
4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
660
Discover your Explorer Soul
emna__ayadi
2
1.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
390
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Transcript
1つのHOWに固執しない 場面に応じた最適な選択 とは? 土橋展之 ourly株式会社
インターン時代からourlyに参画。 “組織改善”という、市場がまだ出来上がってい ない領域にチャレンジできるフェーズに魅力に 感じjoin。 現在はバックエンドエンジニアとして働き、 Ruby/Rails, AWSを業務中によく扱う。 #サウナ #シーシャ #サッカー観戦
#ドライブ 自己紹介 土橋展之(つちはしのぶゆき) @nobuo_tsuchi
None
None
None
新しいことに挑戦し、外部にアウトプットする量 を増やすために登壇を決めました。 人生初の登壇 内容自体に新規性は少ないが、誰でも直面する可 能性のあることをお話しします。 自分と同じ轍を踏む人を減らしたいという思いで す。 自分と同じ失敗をする人を減らしたい 今日の発表の中でいいなと思ったことは、そのま まにせず自分の行動まで落とし込みましょう。
ぜひ行動まで移してほしい はじめに
今回のしくじりポイント 1つの手段に固執し、その手段でいかにうまくやるかを考えてしまったこと 実装前に戦略と戦術の観点から最適解を考えよう
背景 複雑な仕様 大量のデータ APIのリクエストを受け付けるたびに作成→返却 CSVファイル
背景 初期実装が完了。 しかし大量のデータの場合、実行にかなりの時間(数十秒ほど)が かかることが確認された。 このままではユーザー体験が悪いのでパフォーマンス改善が必 須であることが実装後に判明。
結果、何とか改善はできた N+1問題の改善やメモリ負荷の軽減などのパフォーマンスチュー ニングを行い、機能として何とかリリースできる状態にはでき ました。 しかし、もっと複雑な仕様 or もっと大量のデータの場合には限 界があるかもしれません。
ゴール 振り返ってみて 今回の実装が本当に最適解だったのか? 非同期処理(API実行中ユーザーは他の操作が可能) バッチ処理(APIではファイル返却のみ) 差分更新(変更が入った箇所のみ更新する) 代替案 手段 “リクエスト→ファイル返却” という機能はどの手法でも実現できる
他の場面でも同じ
他の場面でも同じ
Why What How Why What Strategy Tactics 手段は分解できる
Strategy 戦略 (実現のための方向性や作戦) 非同期処理やバッチ処理 隠しルートを使いボスの背後に 回る テニスラケットを使う Tactics 戦術 (作戦実行のために必要とな
る動き) APIのパフォーマンスチューニ ング ボスに正面から立ち向かう バットの振り方を練習する
Strategy 戦略 (実現のための方向性や作戦) 非同期処理やバッチ処理 隠しルートを使いボスの背後に 回る テニスラケットを使う Tactics 戦術 (作戦実行のために必要とな
る動き) APIのパフォーマンスチューニ ング ボスに正面から立ち向かう バットの振り方を練習する 適切な手段選択をすることが大事
結論: 今回のしくじりポイント 1つの手段に固執し、その手段でいかにうまくやるかを考えてしまったこと 実装前に戦略と戦術の観点から最適解を考えよう
まとめ 1つの手段でうまくいかない場合の選 択肢も考えるべき。 1つの手段にこだわるのは危険 手段のどのレイヤーで考えるべきかを 明確にする。 手段を考える際には “戦略”と“戦術”に分解する
We are Hiring!
Thank Thank Thank you! you! you!