June 16, 2005
Strutsを見たときに直感的に、XMLでうじゃうじゃ書いてつながりがわからなくなることに対する拒否反応を持った。そして今、Strutsを使おうとしているわけだが(別に初めてじゃないけど、自分自身がそこにまともに向き合おうとしてるのは始めて)、
さらに時代は、Seaser2などのDIコンテナに行こうとしている。
うちのメンバーに話を聞くとDIのすばらしさや、テスト効率の良さは評価はすれど、現状の採用に関しては否定的だ。理由は、
・XML記述が増えて、情報の流れがわからなくなる。独立性を高めることで、視認性が悪くなる(で、うちは大規模開発じゃないから、仕様書よりソースコード見たほうが早いこともあるわけで。頑張っても恩恵を得ないかなという判断。)
・Eclipseの入力補完に対応していなかったりして、わかりにくい・・・とか。
Strutsあたりがバランス的に良いんではないだろうかという考え方で、「既存のServletの知識、経験でカバーできる範囲を逸脱しないこと」を重視している。
ところが、こんな話がある。
「動的言語と静的言語の交差点──RubyとJava/Seasar2の出会い」
S2DAOは,多くのJavaのO/Rマッパーと異なりXMLによる設定ファイルが不要である。~中略~いずれもJavaプログラマが必要とするスキルはJavaプログラミングと命名規約への遵守だけである。
すなわち開発者に求められるのはプログラミング・スキルだけで十分な,そういうフレームワークの方向だ。
そこだけ読むと、解決したい問題は同じというか、激しく同意なわけで。
そもそも、いろんなことを覚えなくてはいけないフレームワークは嫌いだ。
フレームワークのための教育フレームワークが必要になるなら、Windowsアプリみたいに長く食えるものとか、それ相応のメリットが相当必要だ。
とにかく、わかりやすくて、手間がかからなくて簡単なのが良い。
そういう意味で、XMLによる設定記述はウザイ。こういうのはGUIなどによるプログラム自動構築ツールが出てきて始めて生きてくるのかなと思っているわけだが、DIコンテナの基本は、XMLを利用してプログラムモジュールの構築することにあると思っていた。
その場合、もし手書きで書いた場合、XML自体の妥当性を保証してくれるツールが、あるのかないのかわからないが、少なくとも、普通にJavaコードを書けば、型にまつわるエラーはEclipseが教えてくれる。JSPは教えてくれないけど。そんぐらいならPHPとかASPの経験から解決は精神的に難しくない。
でも、この記事では、僕同様、XMLなどを敬遠する方向の記事が書いてあるわけで。
まぁO/Rマッピングに関しては、スクリプト自動生成ツールを作って対処すれば良いと思ってますけどね。無駄な記述が嫌いなのをどう解決するか?という手段としては、それもアリかなと。
でも、何が良いのかわからくなってきた。誰か教えてエロい人。
今のうちに、その本質をつかんでおきたいんだよね、やっぱ自分でコード書いてみないとわからないかもなぁ。
ただのブームには乗りたくないが、本当に良いものを見逃したくもない。
##単純に記事を読んで混乱しただけという気もしてきますた。