Mayaaソースコード探検隊

最近あんまりJavaでプログラミングする機会がなくて寂しいので適当なオープンソースのプロダクトを見てプログラミングの学習をしてみたいと思います。
ここではSeasarファンデーションが提供するWeb用のHTMLテンプレートであるMayaaの中身をのぞいてみたいと思います。
Mayaaについてはhttp://mayaa.seasar.org/を参考にしてください。

とりあえず環境をつくる

コードリーディングにはEclipseを使います。Subclipseを使ってhttps://www.seasar.org/svn/mayaa/trunkからのコードを取得しました。今日現在(2007年2月1日)の最新リビジョンは2891みたいです。ちなみにコミット時のコメントには

こまごまとした修正

とありました。

プロジェクトをチェックアウトすると、ぼくの環境はJDK1.6なのでたくさん警告が出ました。これはプロジェクトのプロパティから「Javaコンパイラー」->「コンパイラー準拠レベル」を1.4にすることで消します。
1つだけ警告が消えないので除いてみると、org.seasar.mayaa.impl.cycle.web.MockServletContextの222行目でFile#toURL()を呼び出してるのがいけないみたいです。
まあ、大した問題ではなさそうなので今は放置しておくことにします。

コードリーディングの方針

環境が出来たところで、コードをリーディングするための方針を決めたいと思います。

  • Mayaaの機能を整理する
  • データ構造を把握する
  • 簡単な処理の流れを把握する
  • 1つ1つの処理の詳細を突っ込んでいってみる

まずはMayaaの持っている機能を整理してから、「プログラム = データ構造 + アルゴリズム」の原則通りにデータ構造を把握したいと思います。
データ構造を頭に入れることは、ソースコードの地図を手に入れることに等しいと考えています。処理を追っかけてクラス階層を下っていくときでも、しっかりとデータ構造を把握していれば、迷うこともないでしょう。
ということで、はじまりはじまり。

次回

Mayaaの持っている機能を見てましょう。