書評『Seasar2入門』というより「私とSeasar2」

僕はもともと業務系の受託開発をやっていて、15年前うちの会社に入社してからしばらくは、証券系の業務アプリをCとSQLで組んでました。
そのうち自社製品や企画やら組込みやらいろんなことにチャレンジし始めるのですが、経験が多く今でも軸足といえるのはやはり業務系の開発です。
業務系アプリは結局はSQLの塊になりがちで、若いころは良し悪しも分からずひたすらトリッキーなSQLを書きまくっていました。それはそれで楽しかったし、どうしたら性能が良くなるのかを考える癖付けもできました。今となっては、稼働直前の本番ORACLEををルールベースでチューニングしまくったのが良い思い出です。数千万件もあるデータの怖さを肌身で学ぶことできました。
そんなトラウマ?もあり、すっかりJavaとORマッピングが当たり前の時代になってからのフレームワーク選びの基準は、「当たり前のSQLはいちいち書きたくない」「でもやばそうなSQLは自分で書けること」の両立。
DIが話題になり始めたあのころ、私がS2(S2Dao)を選んだのはそんな理由です(きっと同じ理由の人は多いと思う)。そして2005年に初めて実プロジェクトでS2(s2-framework-2.1.5/s2-dao-1.0.12でした)を採用し、いろいろハマりながらも無事稼働。2006年、初めてのお客様相手でとても重要視されてたプロジェクトはs2-framework2.2.2。プログラマとして最後にプロダクトコードを書いたプロジェクトでは2.3.7。そして初めて本格的なプロマネを担当&失敗の許されなかったプレッシャープロジェクトでは2.3.10を採用しました。*1
そして最後に使ったのは2.4.7。それから結構間があいてしまい、S2JDBCやSAStrusについてキャッチアップできておらず、こりゃまずいと思って『Seasar2入門』を購入しました。
どうせならと思い、上述した既存プロジェクトのデータベース(SQL Server)を使ってS2JDBCで色々試しているところです。すっかりMS-Office専用と化した僕のPCではeclipseが重いとか、色々忘れて設定でハマるといったちょっとした問題を除けば、私でも問題なく動作させるところまでできました。本当は実プロジェクトでの採用評価を目的に、S2Strtus+S2Daoで実装されているユースケースを、SAStrtus+S2JDBCに移植をしてみたいところです。結構action(ボタン)の多い大きな画面群があったとして、それがSAStrusでは一つのクラスにまとまるので、見通しは良くなるだろうなぁ。でもでかいクラスになりがちだなのかなぁ。といった感覚はあります。
もちろん、ここまでの長々とした振り返りでお分かりの通り、僕にとって「はじめてのWebアプリケーション開発」ではありません。本当に「初めてJavaでWebアプリを開発しようとする人」の場合は、WebやDBに対する前提知識はしっかりと必要となりますので注意した方がよいでしょう。
最近僕の周りのJava案件ではspringが続いているのですが、諸々の事情で自社(自分)でフレームワークを選べない場合が多く歯がゆいところです。僕にとって実績が多く思い入れもあるSeasar2にはその発展を頑張ってほしく、また、自分もそういう仕事(自社の責任でアーキテクチャを決定できる)を増やさなくてはと感じているうちに、書評だか何だかわからないエントリになってしまいました。

Seasar2入門

Seasar2入門

*1:ちなみに、プレゼンテーションはS2Strutsが多いです。一番最初、2005年のはベンダー独自Webフレームワーク+サービス層以下はS2。