コードを読むコツ

コードを読むってすごく大変。他人の作ったコードならもっと大変。なのに仕様書が無かったりする。
「コードしか無いならそこから仕様書を作れ。今後はその仕様書を参考にしろ。」というのはわかるが、しょっちゅうコードが変更されるので、仕様書よりも先にコードが出来てしまっている。
これでは、仕様書を作ったとこで、すぐに手戻りが発生し、追いつかなくなる。
そこで、結局コードを読む力が必要になってしまう。(ほんとはダメなんだけどね。)

前置きが長くなったけど、コードを読むコツを自分なりにまとめてみた。

目的を明確にする

コードを読むにはまず、コードから何を調べたいのかを明確にすること。
目的が不明確なままコードを読むと何もよくわからないまま終わる事が多い。
つまり時間の無駄になるので、何を知りたいのか、調べたいのか、を明確にする。

基本は、入力、演算(制御)、出力

コードを読んでいて、たまに何をしてるのかわからなくなる時がある。
その時は、コンピュータの基本に戻ろう。
コンピュータの処理の流れの基本は、入力、演算(制御)、出力である。
なので、変数Aの流れを知りたい時は、
1. Aがいつ入力されているか
2. Aによって、どのように演算(制御)されているか
3. 2.によって、いつ、何が出力されるのか
を調べたら良い。
これは通信コマンドでも同じである。
本当に迷った時は、基本を思い出して、最初から読む。これは意外と大事。

先入観にとらわれない

複雑なコードを読んでいるときは、なんとなくこうかな? とか これは前にhogeという処理をしますと聞いたからそこまで調べなくてもいいや。 と思ってしまう事がある。
だが、どんな状況であれ、コードに書かれていることは絶対である。 コードに書かれている以上、それは常に正である。(仕様が間違っている可能性はあるけど)
あれ…?例外と正常の処理が一緒になってる?そんなわけない!おかしい!
と思っても、実はそれが正しかったりする。
思い込みはいけない。先入観にとらわれず、コードに書かれている。そこを重視する。
これはある程度の慣れが必要。


コードを読むのは大変だし、時間もかかる。
1オブジェクトによって、多々のオブジェクトに影響があったりすると、もう追いつけない。
そうなる前に仕様書を作ってくれよ と言いたいが、それができない以上、読めるようになるしかない。
でも、ほんとめんどくさいので、ソースコードには仕様書を作るという法律でも作ってくれ。