プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

Codeを読もう


以前購入したCode Readingを、ようやく読み終わる。


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


持ち歩いて電車の中などで読んでいたのだが、いやーしんどかった。
いや、難しいとか、そういう意味ではなくて、重量がね。^^;;
愛用のLet's Note T2より重い感じだったから、1kgを越えてるんじゃないだろうか。
いかに軽いLet's Noteでも、これと一緒だと、かばんがずっしりくる。
トレーニングだと思えばよかったかもしれないが(笑)


さて、Code Readingという題名から、みなさんはどんな印象を持つだろうか。
膨大な未知のソースコードを読み、その内容を素早く理解するための手引き書。
そんな風に思われたのではないだろうか。
結論から言うと、本の趣旨はそういうことなのだが、ぼくが予想したものとは少し違ったようだ。


最初の章はプログラミングのいわゆる「定石」について述べている。
プログラムの構成要素に始まって、ハッシュやリストなどのデータ構造や、再帰・スレッドなどの基本アルゴリズムに至るまで、詳細に解説されている。
コードを理解する上で、これらを覚えておくことは半ば必須と思われるが、既に理解している人にはちょっと退屈に感じるかもしれない。


中盤はソースコードを構成する、システムアーキテクチャの紹介。
Makeを使ったビルドシステムやソース管理システム、ドキュメントの読み方、代表的なアーキテクチャ、などを例を挙げて解説している。
巨大なツリーとソースコードを目の前にした時、それをどのように理解するかの手助けになると思われるが、これも経験者は流してよいだろう。


終盤でようやくソースコードを読むためのテクニックが紹介される。
grepなどのツールを使ってコードを効率よく読むための手法(Wordを使ったテクニックには感心した)や、あるシステムのコードを読んで実際にそれを改造するまでを実例を挙げて解説している。
ある意味本書の真価というべきところだろう。
欲を言えば、もう少しこの部分にページを多く割いて欲しかったかな。


いかがだろうか!?ちょっと拍子抜けした人もいるかもしれない。
でも、ちょっと待って。
この本は読み終わっても、まだ終わりじゃないのだ。


巻末に添付されたCD-ROMをパソコンにセットして、中身を見てみよう。
いろいろなプロジェクトのソースコードが納められているよね。


プロジェクトの解説は本やREADMEに書いてある。
どれか一つを選んで、そこにあるソースコードを読んで理解してみよう。
小さいプロジェクトもあるが、ほとんどはそれなりの規模があるので、コードの構造を理解するのは簡単ではないはずだ。


そう。きっと、ここからが "Code Reading" の本番なのだ。
膨大なソースを見るヒントは、本書の中にある。
本書のTipsを参考にしつつ、コードを読みとる力をつけていく。
気が付けば、どんな巨大なコードにもひるまなくなる、のかな!?


よく考えれば本を読んだからって、すぐにコードが読めるようになるなんて、あり得ないよね。
コードは読んだ量だけ読みとる力がつくのだから、これをきっかけにして、どんどんコードを読もう。
それが、この本を通じて著者が伝えたいことなんじゃないかと思うよ。
コードを読むことが好きな人なら、買ってもいい本じゃないかな。