Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
知らないプロダクトのコードを爆速でキャッチアップする方法
Search
Minato Nakamura
April 13, 2024
Programming
0
330
知らないプロダクトのコードを爆速でキャッチアップする方法
Minato Nakamura
April 13, 2024
Tweet
Share
More Decks by Minato Nakamura
See All by Minato Nakamura
新規プロダクトをマネジメントするために工夫したこと
nelca
0
540
Other Decks in Programming
See All in Programming
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.7k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
270
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
2
220
TestingOsaka6_Ozono
o3
0
150
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
330
AIコーディングエージェント(skywork)
kondai24
0
170
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
これならできる!個人開発のすゝめ
tinykitten
PRO
0
100
AIコーディングエージェント(NotebookLM)
kondai24
0
190
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
710
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
6
2.1k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
The Language of Interfaces
destraynor
162
25k
Automating Front-end Workflow
addyosmani
1371
200k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
How GitHub (no longer) Works
holman
316
140k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Raft: Consensus for Rubyists
vanstee
141
7.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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