コード リーディングについて

コード リーディング(code reading)とはプログラムのソースコードを読み解くことです。
他人のプログラムをはじめ自分が昨日書いたプログラムを読むのです。

コード リーディングの目的

コード リーディングは一般的に「わからないことを調べる」ときに行われますが、その詳細は様々です。

いくつか例を挙げてみます。

実装を学ぶ
アルゴリズムやデータ構造など、プログラミングそのものを学習します。
テクニックを知る
動作が高速で安定したソフトウェアに仕上げるためにエレガントなプログラミング手法を学びます。
自分のコードに自信を与える
文字どおり自分のプログラミングに不安を覚えた時、先人の仕事を確認します。

さらに、あなたは優れたソフトウェア開発者になりたいですか?もしそうなら次のことを想像してください。

ピアニストを目指す者はお気に入りのピアニストの曲をあきれるほど弾きます。ときにはテクニックを向上させるために好きでもない譜面と格闘することがあります。

そうです。この例と同じく、コード リーディングの実践は種々の技芸をマスターする過程と同じで、優れたプログラミングを行うために欠くことのできないプロセス(日常)でもあります。

コード リーディングで得するとき、損するとき

コード リーディングには多大な時間が必要です。

コード リーディングで得するためには、ソースコードを読む目的をはっきりさせることです。 明確な目標をもって行ったコード リーディングのあとはかなり興奮します。

反対に「なんとなく読んでみよう」という態度ではコードリーディングを進めてゆくうちに収集がつかなくなります。貴重な時間を無駄に過ごすことは罪でもあります。

多くのプログラミング言語を学んでおく

様々なソースコードを読むために、多くのプログラミング言語を習得しておくのはかなり役立ちます
HTTP サーバの仕組みが知りたくて Apache のソースコードを読もうと思っても、PHP しか読めないのなら話になりません。PHP で書かれた HTTP サーバ が存在しますか?

慣れろ

ソースコードを読み解くという行為は慣れるまで思うように進まないのが現実です。ですから毎日コード リーディングに取り組むことが大切です。

最後に

ソフトウェア開発の経験が少なくコード リーディングの進め方がさっぱりわからない人もいるでしょう。もしそうならコード リーディングそのものをテーマにした書籍、「Code Reading―オープンソースから学ぶプログラミングテクニック」を手に入れましょう。
第11章「総合的な例」ではhsqldb データベースを拡張して、ある新しい SQL 関数のネイティブサポートを追加する過程が述べられています。

手っ取り早くコード リーディングの全体像を掴みたいなら「ソースコードを読むための技術」が参考になります。

コード リーディングへの助言

ジョジョの奇妙な冒険 (59)より

私は『結果』だけを求めてはいない。『結果』だけを求めていると、人は近道をしたがるものだ…

近道した時、真実を見失うかもしれない。やる気も次第に失せていく。大切なのは『真実に向かおうとする意志』だと思っている。向かおうとする“意志さえあれば”いつかはたどり着くだろう?向かっているわけだからな…違うかい?



$Date: 2009-04-15 23:51:04 +0900 (Wed, 15 Apr 2009) $