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
知らないプロダクトのコードを爆速でキャッチアップする方法
Search
Minato Nakamura
April 13, 2024
Programming
0
180
知らないプロダクトのコードを爆速でキャッチアップする方法
Minato Nakamura
April 13, 2024
Tweet
Share
More Decks by Minato Nakamura
See All by Minato Nakamura
新規プロダクトをマネジメントするために工夫したこと
nelca
0
520
Other Decks in Programming
See All in Programming
Drawing Heighway’s Dragon- Recursive Function Rewrite- From Imperative Style in Pascal 64 To Functional Style in Scala 3
philipschwarz
PRO
0
190
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
850
保守性を高める AWS CDK のセオリー・ベストプラクティス
yamanashi_ren01
3
120
React 19アップデートのために必要なこと
uhyo
8
1.6k
Jakarta EE meets AI
ivargrimstad
0
870
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
400
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
300
バッチを作らなきゃとなったときに考えること
irof
2
570
DevNexus - Create AI Infused Java Apps with LangChain4j
kdubois
0
150
Your Architecture as a Crime Scene:Forensic Analysis @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
130
AWS Step Functions は CDK で書こう!
konokenj
5
940
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
170
Featured
See All Featured
Faster Mobile Websites
deanohume
306
31k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
590
Code Reviewing Like a Champion
maltzj
521
39k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Designing Experiences People Love
moore
140
23k
Typedesign – Prime Four
hannesfritz
41
2.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Into the Great Unknown - MozCon
thekraken
35
1.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Transcript
知らないプロダクトのコードを 爆速でキャッチアップする⽅法 Mynato
目次 • 自己紹介 • 今日話すこと • 結論、この2つ • キャッチアップするためにやること •
何があると良いか • 結局のところ • まとめ 2
自己紹介 名前:Mynato(中村南斗) 所属:アスエネ株式会社 何やってる?:環境系BEエンジニア 兼 PdM 3
今日話すこと 初めて触るプロダクトにであった時 「どこからどうやってみていけば良いの?」 そんな時にちょっとだけ思い出してみてもらえれば コアラがなんか 言ってたな... 4
結論、この2つ • コードを読む(そりゃそう) • 周辺知識を把握する(うろ覚えでもよい) 5
キャッチアップするためにやること 歴史を知る • 古い仕様書を見にいく • 疑問のある仕様はガンガン聞く • 気になったキーワードはSlackで検索する • コードをblameして見ていく
◦ 関連するPRからチケットや仕様書を辿る 6
キャッチアップするためにやること ドメインを知る • わからない単語はとにかくググる • 仕様の背景になるドキュメントを社内・社外含めて漁る • とりあえずいろんなSlackチャンネルに入る • コード上のドメインロジックを探す→資料を探す→今の仕様を理解する→ドメイ
ンの理解を深める 7
キャッチアップするためにやること 機能を知る • 1つの機能は全てにつながる ◦ 機能に関連するテーブルは全部見にいく ◦ テーブルのリレーションから機能のつながりを理解する ◦ 指数的にわかる範囲が増えていく
• 疑問に思ったらまず画面を触る ◦ 手がかりがない時はコードから検索 →画面を触る→コードを詳しくみる ◦ 開発者ツールを開いておいて、 APIが叩かれてるかを知る →APIの中身も見る • 機能の中で気になる仕様はコードを見にいく ◦ 沼ることが多々あるが、他人に説明できる程度まで理解する 8
キャッチアップするためにやること 今起きていること、これから起きることを知る • 発生しているエラーは全て原因のあたりがつくまで調査する(という気持ち) • 問い合わせは全て自分でも調べてコードベースで理解する(という気持ち) • 一次情報まで調べにいく ◦ 公式ドキュメントしか勝たん
• CSの問い合わせ対応、セールスチームの案件情報をキャッチアップする ◦ これから起きるであろうことの予測、背景を把握する 9
キャッチアップするためにやること 歴史を知る ドメインを知る 機能を知る 今起きていること、これから起きることを知る 10
何があると良いか 検索力。とにかくいろんなところを調べてみる。 • どこで起きてる? ◦ コード全体でキーワードの検索 • 何をやってる? ◦ 迷ったら公式ドキュメント
• どうしてこうなってる? ◦ 社内ドキュメント、チケット • 誰に聞けば良い? ◦ 意外とSlackは情報の宝庫 11
何があると良いか 仮説と検証の繰り返し • この仕様はどういう背景でこうなっているのか ◦ ユーザーからの要望なのか ◦ システム制約なのか • ここのコードはどうしてこうなっているのか
◦ なんでこんなに複雑なのか ◦ なんでここで処理しているのか 12
何があると良いか 勘 • 起きている事象は ◦ FE or BEで処理されているのか ◦ DBのデータに保持されているのか
◦ ユーザー環境起因のエラーなのか • エラーとか問い合わせ見てたらなんとなく当たりがつく ◦ ユーザーがこういう操作をしてるのではとか ◦ このバッチが動いてるからとか ◦ →想像力とも言える 13
何があると良いか 検索力。とにかくいろんなところを調べてみる 仮説と検証の繰り返し 勘 (想像力) 14
とにかくコードを読む • しつこいくらいに深追いする ◦ バックエンドエンジニアでもフロントは見にいく ◦ DBのデータも見にいく ◦ ログも見る •
けど諦めも必要 ◦ 10分くらい同じ箇所をずっと眺めていたら諦める ◦ 誰に聞けばわかるか、も立派な知識(だから自分で頑張りすぎない) ◦ 魔境を見つけたら逃げよう 結局のところ 15
結局のところ 納得するまで触る→周辺知識を把握する • 機能を触る→コードを見にいく→触ってみるの繰り返し ◦ 自然とコード外の世界の理解も必要になる。 • 他人に対して自分が説明できるくらいまで理解する ◦ ドメインの知識をつけないと説明できない
◦ ユーザーがどう使っているのかという想像もできるようになる 16
まとめ とにかくコードを読んで 納得するまで触り 周辺知識を把握すれば 爆速キャッチアップできます!(N=1) 17
最後に 新しいプロダクトを爆速キャッチアップしたい方お待ちしております! 18