できるだけ高速にコードの構造を把握する
その対象のコードに対するメンタルモデルを自分の中に構築する
そのためには、コードを読む以外で情報を集めた方が有効な可能性もある
ドキュメント上でmodule構成の話などをしていたり、PR上にそういう議論をしていたり、既に読んだことのある人のログがあるならそっちを先に読んだほうが速い
そういう情報がないなら、仕方なく実際にコードを読んでいくことになる
抽象的な部分から読んでいく
そのために、色々支援ツールが必要になる
ディレクトリ構造を見る
特定のファイルを開かずに、ファイルツリーだけ見て目的が達成できたら最高だろう
moduleの繋がりを見る
可視化するツールが必要だろう
その大きな概念がどういうパーツで構成されていそうかを予想しながら見る
各ディレクトリやmoduleのボリュームを見る
ボリュームが大きいものがそのリポジトリの根幹を担っているものだろう
エントリファイルから読む
コメントを読む
関数名と型だけを読む
test codeをよむ
詳細をテストしていない良いテストなら、インターフェースだけで必要十分なものを伝えているはず
ChatGPTに読ませる
いかにして具体的な部分を読まないかが重要になってくる
こういうのは自分でコードを書くときも同じ
いかにして詳細を読まずとも、内容を伝えられるか、というのを意識して書く
そういう意味で、手続き的なコードや、状態を扱っているOOPはかなり読みづらい
手続きを追わないと理解ができない
どうしても具体的なところを見ないといけなくなる
これを支援するツールを作るとすると、
CLIコマンドでどうのこうのというよりは、エディタの拡張として作ったほうが良さそう
普段のコーディングの延長で気軽に実行できるべき
なにか別のリポジトリを落としてきて読んでいくこともあるが、他のチームメンバが書いた部分を読むこともあるわけだし
逆に、自分が書いたコードに対し、ツールを適用することで、わかりやすいコードになっているかどうかを自分で評価できると良い