1. HOME »
  2. Java Tips »
  3. Beginners

Beginners Article

ソーシャルブックマークに登録 : Yahoo!ブックマークに登録 はてなブックマークに登録 del.icio.usに登録 newsing it!に登録 Buzzurlにブックマーク livedoorクリップに登録 Choix!にブックマーク イザ!ブックマーク

print 印刷用ページの表示

手取り足取り、徹底指導!

ソース・コードの読み方、教えます。

第1回 「コードの読み方」を体系的に理解する──導入編

プログラミングのスキルを向上させるには、優れたコードを読むこと、すなわち「コード・リーディング」が重要だと言われます。しかし、実用に供されているアプリケーションであれば、そのソース・コードは数千行から数万行にも及ぶため、どこから手を着けて、どのようなアプローチで読み進めていけばよいのかわからないということが多いのではないでしょうか。そこで本連載では、ソース・コードを読み解くための秘訣をまとめるとともに、コードを読み進めていく過程を具体的に示していきます。まずは、コード・リーディングの『導入編』として、どのような場合にコードを読むことになるのか、まずはその目的を整理します。そのうえで、それぞれの目的に応じて、どのような手法/ノウハウを適用してコードを読み進めればよいのかをまとめてみます。

2006年5月22日更新

text ●  青柳 龍也 津田塾大学情報科学科 http://cs.tsuda.ac.jp/

プログラミング教育とコード・リーディング

 日本語でも英語でも、言語をマスターするには、大量のインプット(読む、聞く)が必要となります。何らかの言語をマスターした人は、そのために、アウトプット(書く、話す)の何十倍ものインプットを要したはずです。

 プログラミング言語も1つの言語です。自然言語とまったく同じではないにしても、それをマスターするためには、かなりの量のインプットが必要でしょう。プログラミング言語の場合のインプットは、プログラム(コード)を読むこと、すなわちコード・リーディング(Code Reading)となります。

 しかし、従来のプログラミングの教育では、「プログラムを書くこと」は教えますが、「プログラムを読むこと」はほとんど教えてきませんでした。英語に例えれば、英語の本はまったく読まずに、英作文ばかり行っているような状況です。英語を読む練習をすることなく、英作文ができるようになるでしょうか。おそらく無理ですよね。従来のプログラミング教育では、その無理なことをやっていたわけです。

 筆者は、プログラミングを教える立場の人間です。コード・リーディングの重要性は人一倍痛感していますが、残念ながら、まだ、コード・リーディングを教える科目を作るところまでは至っていません。しかし、そろそろそうした科目のカリキュラムを真剣に考えようと思っています。なぜなら、「機は熟した」と感じているからです。そのように感じる理由は、主に3つあります。以下、それぞれについて順に説明しましょう。

コード・リーディングを扱った書籍の登場

 まず、1つ目の理由は、コード・リーディングをテーマにした以下のような書籍が出版されたことです。

『Code Reading: The Open Source Perspective』(著者:ディオミディス・スピネリス氏/発行:Addison-Wesley/発行年:2003年)※1

※1 同書の邦訳版『Code Reading―オープンソースから学ぶプログラミングテクニック』(発行:毎日コミュニケーションズ)も出版されている。

 自分自身の経験から、コード・リーディングのノウハウをすでに獲得している人はたくさんいるでしょう。そのような人から見れば、この本に書いてあることは当たり前のことばかりかもしれません。しかし、たとえ当たり前のノウハウでも、個人の頭の中にあるのではなく、本というかたちで文書化されたことには大きな意味があります。デザイン・パターンが、文書化されたことを契機に多くの開発者の間に広まったのと同じことが期待できるでしょう。また、仮にこの本の内容が完璧ではないとしても、この本が良い出発点を与えてくれることは確実です。

オープンソースの普及

 2つ目の理由は、オープンソースの普及によって、(品質、使用言語、コードの長さなどの面で異なる)さまざまなソース・コードが、大量に、かつ容易に入手できるようになったことです。

 もちろん、単に入手できるだけでは不十分で、それをコード・リーディングという作業に結び付ける何か(例えば、リーディング・ガイドやコード批評のようなもの)も必要になるでしょう。しかし、とにかく読むべきコードがなければコード・リーディングは行えません。したがって、題材となるコードが容易に入手できるということは重要です。

IDEの成熟

 3つ目の理由は、IDE(統合開発環境)の成熟です。本連載の『実践編』で示しますが、最近のIDEの機能は非常に充実しています。これを活用することによって、以前なら読むのが難しかった(長い、または複雑な)コードでも、比較的容易に読めるようになりました。

 プログラミングの勉強を始めて、教科書に載っているような小さな例題プログラムは読めるようになったとしても、現実のシステムの巨大なプログラムにはまったく歯が立たないかもしれません。両者のギャップはとても大きいのです。しかし、IDEの豊富な機能がそのギャップを埋めてくれる可能性があると筆者は考えているのです。

ページの先頭へ戻る