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
140
チームにとって最適なスキルアップ施策とは何か/what-is-the-best-skill-up-approach-for-team
nobuoooo
0
180
Featured
See All Featured
Music & Morning Musume
bryan
46
6.2k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Statistics for Hackers
jakevdp
796
220k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
How to Ace a Technical Interview
jacobian
276
23k
Documentation Writing (for coders)
carmenintech
66
4.5k
Designing Experiences People Love
moore
138
23k
Optimizing for Happiness
mojombo
376
70k
GitHub's CSS Performance
jonrohan
1030
460k
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!