2009年7月30日木曜日

技術制約とアーキテクチャドライバー その3(完)

今回でこのお話は終わりです。

その朝チームメンバーの一人がもってきた打開策とは、「公開されてる JUnit のソースを読めば、使いたい API がすぐにわかるよ!」というものでした。
そういえば、まつもとゆきひろ氏はコードリーディングの秘訣として次のような点を挙げていました。
わたしが過去にどのようなソースコードの読み方をしてきたのかを振り返ってみると、プログラミング能力の向上を目指したコードの読み方のヒントがあるかもしれません。

 まず1つは、「全体を読もうとしない」ことです。ソースコードには「物語」はないので、全体を通して読む必要はありません。面白そうなところをつまみ食いして、先人の知恵を学べばそれで十分です。

 もう1つは、「目的を持って読む」ことです。何かを学ぼうと思ってソースコードを読めば、効果的に読解して知識を得ることができます。

この観点から JUnit のソースを読むという行為は非常に理にかなっているといえます。すべてのメソッドは testXXX() の形で名前が与えられているため、何をしようとしているのか、その目的が一目瞭然です。さらに、個々の testXXX() はおよそ10~20行程度だったので、巨大なコードの海を泳ぐことなく、目的を達成するために必要な一連のメソッド呼び出しを理解することができました。

もしも、ドキュメントがない、JavaDoc が入手不可能、Google Code の検索に引っかからない、というような状況で巨大なコードベースの中から、ある目的を達成するための一連の API 呼び出しを探し出さねばならなくなった場合、JUnit のソースが公開されていないかいちど確認してみてはどうでしょう?プロダクトのソースコード中のコメントを読むよりもずっと役に立つかもしれません。私のチームは少なくともそのケースが当てはまり、おかげで実装を無事にすすめることができました。

今週の金曜日にクライアントとともに受け入れテストをして、通れば正式に納品となります。そして、来週の金曜日は毎学期恒例の EOSP です!

夏セメスター、本当にあっという間です。

0 件のコメント:

コメントを投稿