Code Reading

やっと読み終わりました。都合2ヶ月くらいかかったでしょうか。
ソースコードの読み方について網羅的に解説されている書です。書き方ではなく読み方についての本という所がユニークです。対象としている言語は主にC/C++Javaです。必読の書だと思いますね。

Code Reading―オープンソースから学ぶソフトウェア開発技法

Code Reading―オープンソースから学ぶソフトウェア開発技法

この本で一番ためになった所を挙げるとするなら、10章の「コードを読みためのツール」です。解説しているツールとして、grep、diff、vi、emacs、Word(!)、なのですが、コードを読む上での便利な機能という視点で書かれているので、新たな発見があると思います。
自分の新たな発見として、関数定義のコーディング規約があります。関数定義は戻り値と関数名を別の行に書くべしという規約があります。

int
hogefunc (int hoge)
{
return 1;
}

これはgrepで関数定義を探しやすくするためだそうです。行頭から関数名が始まっていれば、そこが関数定義ということです。


$ grep ^hogefunc *.c

まぁ、統合開発環境を使っている場合には、関数定義にジャンプできる機能があったりするのでこの規約は意味を持たないかもしれませんが、移植する時とか便利なこともありそうですね。自分の趣味のコードはこれに習おうかな、と思います。