コード リーディング(code reading)とはプログラムのソースコードを読み解くことです。
他人のプログラムをはじめ自分が昨日書いたプログラムを読むのです。
コード リーディングは一般的に「わからないことを調べる」ときに行われますが、その詳細は様々です。
いくつか例を挙げてみます。
さらに、あなたは優れたソフトウェア開発者になりたいですか?もしそうなら次のことを想像してください。
ピアニストを目指す者はお気に入りのピアニストの曲をあきれるほど弾きます。ときにはテクニックを向上させるために好きでもない譜面と格闘することがあります。
そうです。この例と同じく、コード リーディングの実践は種々の技芸をマスターする過程と同じで、優れたプログラミングを行うために欠くことのできないプロセス(日常)でもあります。
コード リーディングには多大な時間が必要です。
コード リーディングで得するためには、ソースコードを読む目的をはっきりさせることです。 明確な目標をもって行ったコード リーディングのあとはかなり興奮します。
反対に「なんとなく読んでみよう」という態度ではコードリーディングを進めてゆくうちに収集がつかなくなります。貴重な時間を無駄に過ごすことは罪でもあります。
様々なソースコードを読むために、多くのプログラミング言語を習得しておくのはかなり役立ちます。
HTTP サーバの仕組みが知りたくて Apache のソースコードを読もうと思っても、PHP しか読めないのなら話になりません。PHP で書かれた HTTP サーバ が存在しますか?
ソースコードを読み解くという行為は慣れるまで思うように進まないのが現実です。ですから毎日コード リーディングに取り組むことが大切です。
ソフトウェア開発の経験が少なくコード リーディングの進め方がさっぱりわからない人もいるでしょう。もしそうならコード リーディングそのものをテーマにした書籍、「Code Reading―オープンソースから学ぶプログラミングテクニック」を手に入れましょう。
第11章「総合的な例」ではhsqldb データベースを拡張して、ある新しい SQL 関数のネイティブサポートを追加する
過程が述べられています。
手っ取り早くコード リーディングの全体像を掴みたいなら「ソースコードを読むための技術」が参考になります。
私は『結果』だけを求めてはいない。『結果』だけを求めていると、人は近道をしたがるものだ…
近道した時、真実を見失うかもしれない。やる気も次第に失せていく。大切なのは『真実に向かおうとする意志』だと思っている。向かおうとする“意志さえあれば”いつかはたどり着くだろう?向かっているわけだからな…違うかい?