Seasar2によるスーパーアジャイルなWeb開発

Seasar2によるスーパーアジャイルなWeb開発 (WEB+DB PRESS plusシリーズ)

Seasar2によるスーパーアジャイルなWeb開発 (WEB+DB PRESS plusシリーズ)

久しぶりにJAVAの開発をしている。といっても、プロジェクトではない。今、プロジェクトとプロジェクトの合間で少してがあいているので、お勉強をしている。プロジェクトの関係上、最近JAVAから離れていたので本当に久しぶり。
先のプロジェクトで作成したPHPの議会答弁管理アプリをモルモットにして、Javaで書き直すことでお勉強をしている。といっても、今までのようなJava1.4+Strutsというのではなく、新たな技を身につけたいと思って、Teedaに注目。きっかけはひがさんがお書きになった『Seasar2によるスーパーアジャイルなWeb開発』という本。
少し前に購入して一通り学習したのだけど、これで少し作ってみるか、と一念発起。議会答弁アプリのモルモット化はもともと持っていた発想で、いろいろな言語・フレームワークに置き換えてみようと思っていて、最初はRailsで作ろうと考えていた。でも、もともとJavaのほうが得意だし、Teedaには少し魅力を感じたので、優先順位を変更。
やってみると、これは面白い。何が面白いかというと、MVCのView(=HTML)からほぼ完全にロジックが消えている(ように私には見える)。これはひがさんがそう意識して作ったのかもしれない(間違っていたらごめんなさい)。
たとえば、分岐。普通には、分岐条件を記述する。PHPSmarty
{if …}
{/if}
の…の部分に条件式を記述している。Railsなんかは昔のJSPと同じで<% if … %><% end %>
ともろロジックを記載する。
Strutsはタグ化していて一見洗練されているように見えるけど、


の「…」の部分に分岐ロジックが記載されている。
結局のところ、Viewにロジックが書かれていることになる。
一方、Teeda

だけ。ロジックはPageクラスのisHogeメソッドに記載する。つまり、View内にロジックがない!
これは私には画期的に思えるし、当初、ものすごく困った。今までの感覚ではついロジックを書きたくなるし、頭の中でHTMLを組み立てる段階ですでにViewの中にロジックを書いている。切り替えるのが大変だった。
でも、考えようで、ロジックというのは絶対にクラスの中に書いたほうが書きやすい。細かい制御が書けるから。そう頭を切り替えたら、このTeedaの発想というのは柔軟性がある。
まだ、Teeda版議会答弁アプリは途中なので、作業を続けてみようと思う。