ゆとりなJavaプログラマが読むといいかもしれないオープンソースソフトウェア

Java出来ますって言ってるのにOpenJDKのコードをチェックアウトした事も無いようならモグリである可能性は高い。

一歩先行くJavaプログラマが読むべきオープンソースソフトウェア10選 - 設計と実装の狭間で。

OpenJDKのコードをチェックアウトした事も無いモグリです。こんにちは。

ま、それはともかくw 上記はいいエントリだし参考になります。ただまあモヒカンなのは事実だと思うのでゆとり路線でどういうオープンソースソフトウェアを読むと良いかもしれないって言うのを書いてみたいと思います。かもしれないって書いてるのがすでにゆとりですね。サーセンw

すでに語り尽くされているとは思いますが、これは外せない。

僕自身は下記のJUnit3.8.2を読解する記事を読んでからJUnit3.8.2を読んでみましたね。

Java World (ジャバ・ワールド) 2005年 9月号

Java World (ジャバ・ワールド) 2005年 9月号

で、読みやすいんだけど、この意見はそれなりに納得できるかもw

JUnit. よく勧める人がいるけど, API でだいたい想像がつくものの中身はいまいち楽しくない. ダメというより優等生すぎてつまらない. もしかすると私は API デザインがドキュメントも含めきちんとしているものには食指が動かないのかもしれない. フレークワークの類も同じ理由で興味が湧かない. このへんの匙加減は悩ましい. お勉強という意味では読んだ方がいいんだろうけど, お勉強という理由だけでコードを読むのはしんどい.

心はさらわれるもの - Backnumbers: Steps to Phantasien

JUnitってコードサイズが小さく(3.8.2でたしか4KS程度)、依存ライブラリが無いので読みやすいんですよね。このJavaWorldの記事を読んでEclipseでどうソースを読むかを学んだ気がします。

僕はゆとりなのでfindとかgrepとかでソース読む気はおきなくて、Eclipseにアタッチできることが最重要ですw

その意味でいうとSeasarプロジェクトは、チュートリアルをダウンロードしてすぐEclipseにアタッチできるプロダクトが多いのでソースを読む敷居が低いですね。ドキュメント日本語だし、JavaDocも日本語が多いからね。

  • S2Container

ということでSeasarプロジェクトの本丸S2Containerですね。

ただ結構巨大になっているので初期バージョンとかのほうがいいかも。例えば

http://seasarproject.g.hatena.ne.jp/keyword/S2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E5%B1%A5%E6%AD%B4

にあるS2-EA1とか読む方がいいかも。規模が大きすぎると心が折れるからねw 規模が大きくても、機能追加してやろうとか目的をはっきりさせて読むならいいと思う。

今更Strutsかよという声もありそうですがw、RequestProcessor読めばHTTPリクエストをどう処理するかわかって面白いんでないかと。

  • Jenkins

いままで挙げたものは優等生タイプのものですが、ハーカー臭がするものも読んでみたいですよね。それならJenkinsですね。

ただこれはまあ巨大なので全部はつらいです。ただ下記の川口さんの記事とあわせてremotingや実行可能warあたりを読むのは面白いかと。

WEB+DB PRESS Vol.53

WEB+DB PRESS Vol.53

だいたいこんな感じですかねえ。まあJenkinsのようにプラグイン機構があるものはプラグイン書いてるうちに本体のソースを読むって言うのは結構あります。Eclipseとかね。

そうそう書籍ならこれがいいと思います。

ソースコードリーディングから学ぶ Javaの設計と実装

ソースコードリーディングから学ぶ Javaの設計と実装

で、ここまで書いといてなんですが、キャリアのほとんどがJavaでのアプリ開発だった僕が、読んで一番感動したソースは実戦経験3か月のpythonで書かれたTracだったりしますw
あのフレームワークつかってない(テンプレートエンジンは使ってる)オレオレ感とDAOナニそれ的な感じでしかもSQLベタ書きなところがいいですw ま、モジュール毎にきっちりフォルダも別れているし読みやすいです。ただしメタクラス全開なcore.pyは除く。