コードリーディングを支える技術

コードリーディングを支える技術

はじめに

このタイトルは半分詐欺です(というか誤解を招くタイトル) この記事にはコードリーディングのコツ、役立つツール紹介などを紹介していきます。 タイトル部の「支える技術」というのは適切なワードでない気がしますが、某コーディングを支える技術をパクってみたかったのです。

大規模コードの場合

小規模なやつだと最初から最後まで流し読みをすればいいですが、大規模なやつでそれをやってしまうと挫折すると思います。

考える人は少ないと思いますが、大規模コードを読むときに一番考えてはいけないことは「よっしゃ。お前を丸裸にしてやるぜ!」です。 エッチな考えは捨てましょう 多分、目的が合って読んでいると思うのでその部分だけに集中する必要があります。

本質的なところ以外は読まない技術が必要です。

じゃあ、どこが自分の必要なとこなのでしょう

まずコードを読み始める前に必要なところを探す必要があります。

ディレクトリ構造の理解

言語やツールによってディレクトリ構造が大体決まっていると思います。 それが理解できていれば自分の読みたいコードがどこらへんにあるかが分かるかと思います。

プロジェクトによっては変なディレクトリ構造になってたりもしますが(汗)

grep最強!

個人的にはripgrepというツールを使ってます。 ripgrepを駆使すれば余裕で見つかります!(多分)

rg keyword # 検索
rg -w keyword # ワード検索
rg -l keyword # ファイル名だけを出力

タグジャンプ

関数の実装を見たいときにはタグジャンプが便利ですね。 僕はLanguage Serverのジャンプ機能を使ってます。おすすめツール等あったら教えてください。

ただ、関数名から実装を推測するというのも大事だと思います。 また、最近おエディタだとテキストドキュメントを表示できるものも多いと思うのでそれを活用すれば中身を読む必要がなくなると思います。 潜り過ぎ注意!

実装を読む必要がない場合は極力読まないことが大事だと思います。(もちろん、読むなと言ってるわけではなく)

エラーハンドリング

エラーハンドリング等も本質的なところではないと思うので飛ばしてしまいましょう!

まとめ

後半雑に書いてしまいましたが、まとめ。 大規模コードを読むときはいかに読む量を減らすかが大事!