2009年7月30日木曜日

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

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

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

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

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

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

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

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

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

2009年7月17日金曜日

推薦状を書くことになりました

名前は伏せますが、このたび知り合いの先生が teaching professor に昇進されるかもしれないということで、その推薦状を書くことになりました。
Dear Yuki:
The School of Computer Science at Carnegie Mellon University is considering the promotion of ******** from Associate Teaching Professor to Teaching Professor and he has given your name as a reference.

CMU の先生は、標準、教育、研究の3 つのトラックにわかれ、標準トラックの先生は授業を受けもちながら、研究を行っているそうです。tenure の先生の大部分は標準トラックだそうですが、教育トラックの先生にも tenure をもつ方がいらっしゃるとのこと。

昇進を通すか否かの判断に生徒の意見も取り入れるあたりは、フェアでとてもよい仕組みだと感じました。大学側に強い印象を残す推薦状を書こうと思います。

2009年7月3日金曜日

私を支えてくれる方たちへ

2004年に MSE を卒業されたEさんが先日 cave にいらっしゃいました。

私が 2006 年に MSE に入りたいと決意してからというもの、E さんには本当に全面的にバックアップしていただきました。2006年には Tony 先生を紹介してくださり、2007年には出願の進み具合をみていただいたり、日本にいらっしゃった Tony 先生と話をする時間を設けてくださったりしました。Tony 先生や E さんと初めてお会いしてからもう 3 年の月日が経ったとは・・・早いものですね。