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
0
16
1つのHowに固執しない 場面に応じた最適な選択とは?
nobuoooo
July 12, 2024
Tweet
Share
More Decks by nobuoooo
See All by nobuoooo
新規学習のハードルを下げる方法とは?/ How to Make Learning Something New Easier?
nobuoooo
1
150
チームにとって最適なスキルアップ施策とは何か/what-is-the-best-skill-up-approach-for-team
nobuoooo
0
190
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Practical Orchestrator
shlominoach
186
10k
Git: the NoSQL Database
bkeepers
PRO
427
64k
How to Ace a Technical Interview
jacobian
276
23k
How to train your dragon (web standard)
notwaldorf
88
5.8k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Why Our Code Smells
bkeepers
PRO
335
57k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
210
What's in a price? How to price your products and services
michaelherold
244
12k
Bash Introduction
62gerente
609
210k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
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!