Seasar Conference 2007 Autumn
Seasar Conference 2007 Autumnに行ってきました。以下、僕の受けたセッションと雑感などです。
Seasarを支えるテクノロジー - 千葉さん
Javassistの千葉先生の講演でした。静的 vs. 動的(Reliability vs. Productivity)の対比を、"Avoid Coding vs. Enjoy Coding"という言葉でも表現されているのが面白いと思いました。この両者をバランス良く組み合わせることを目指したフレームワークとして、GluonJというものを作っているそうです。GluonJを使えば、クラスロード時までならばクラス定義の動的書き換えが可能になるということです。
これであなたもTeedaが好きになる - 米林さん
Teedaの採用を検討している人に向けての全般的な解説でした。Teedaの特徴を
- ページ駆動
- PRG(POST-REDIRECT-GET)パターン
- 設定ファイルレス
- HOT deploy
- ライフサイクル
のキーワードから説明し、その後Teeda Ajaxの紹介、開発Tipsと続きました。Teedaを各所で「かわいいフレームワーク」と強調していたのが印象的でした。Teedaを使うと、痒い所にあちこち手が届くので「かわいい」ということなのかな。
質疑の時間があったので、ビューにロジックを記述できる逃げ道は作らないのか?という趣旨の質問をしてみました。TeedaはPOHPに強くこだわっているけれど、その代償として融通性を失った側面もあるんじゃないかと思っていたので(個人的には、id属性によるバインディングを基本としつつ、EL式のような形で簡易ロジックも記述できると嬉しい)。
回答は、そのような考えは特にないということでした。確かに、idバインディングに例外を認めるとせっかくのTeedaの方向性がブレてしまうので、難しいところだと思います。
S2Wicketの紹介 - よういちろうさん
よういちろうさんを初めて拝見したんですが、ブログから受けるイメージとは違って、とても穏やかな喋り口の方でした。部屋のキャパが小さいこともあってか、質疑がどんどん飛び交って面白いセッションでした。内容は、Wicket自身の解説とS2Wicketの説明が半々くらいで、Wicketを触ったことのない自分にも非常に分かりやすいものでした。
以前にご本人のブログで書かれていた動的プロキシのシリアライズ問題は、これから手を付けるそうです。あと、Wicketのソースは複雑すぎて、よういちろうさんですら読めないそうです(笑)。
僕は、WicketがJavaScriptを自動生成してくれるのは素晴らしいけど、結局、JavaScriptの挙動を解明するためにソースを追う羽目にならないか?という質問をしました(以前、GWTで同様の経験がある)。よういちろうさんの経験上、そういうことは無いとのことです。
データベースプログラミングの生産性を10倍向上させるSeasar2の新機能 - ひがさん
S2JDBCを紹介するセッションでした。S2JDBCのコンセプト、JPAとの比較、デモ、ベンチマーク結果など。
セッション終了後、「S2DaoとS2JDBCを比較すると、S2JDBCの方がメソッドの抽象度が低いので、メンテナンス性が下がるのではないか」という質問をしました。
全従業員を取得するメソッドを、S2Daoでこう定義していたとします。
@S2Dao(bean = Employee.class) public interface EmployeeDao { @Query("order by name") List<Employee> getAll(); }
これがS2JDBCに移行すると、上のEmployeeDao#getAllの代わりに、以下のようなコードがロジックのあちこちに散らばることになると思います。
List<Employee> employees = jdbcManager.from(Employee.class) .orderBy("name") .getResultList();
後日、ソートを名前順ではなく従業員番号順にしたい、あるいは全件ではなく部分取得にしたいといった要求が出た場合、S2Daoなら@Queryアノテーションを書き換えるだけで済みますが、S2JDBCだと対応が大変じゃない?という疑問です。
ひがさんの答えは、そういう時はDaoにラップすれば良いということでした。確かにそうなんですが、ラップしたら却ってS2Daoより面倒なのでは?とも思います。