いかすぜ、Seasar!!!


つーわけで、「Seasarのからさわぎ」というイベントに参加してきました。
体調はよくなかったんですが、こりゃあ無理を押してでも参加する必要あり!と思って、
へたれな体をむりくり動かしていきました。

 きっかけは、Web+DBプレスでPicoContainerの記事で出てきたIoCというパターンを
最近よく聞くようになってきて、それはいったいなんじゃらほい?という思いがあったからです。
Springがリリースされたこともあってかな?

 で一発目は、メイン開発者のひがさんのお話。
おちついた語り口と、たまにみせるジョークがなにか凄腕のオーラを感じました。
話はIoCのことがメインで、これについてはちょっと予備知識があったんですが、
重要なポイントを再確認できました。

それは、IoC自体が何かを提供してくれるというよりは、IoCパターンを使うと
インタフェースとインプリメンテーションを分離しやすいということです。
これはオブジェクト指向的に結構重要で、インタフェースプログラミングとか
世界をきっちりわけておくという意味では凄く重要なことなのです。

んで、次がAOPの話をしてくれました。
AOPも予備知識はちょこっとだけあったので、重要ポイントだけをかっちりと
キャッチすることができました。それは、AOPはCrosscutting concern(以下XC)と
Core concern(以下CC)を分離するということです。つまり、自分的な解釈でいうと
OOPは縦割の問題解決方法とするなら、AOPはマトリクス型の解決方法を提供してくれる
ということです。こう解釈すると「なるほど、問題解決法としてはこっちの方が優れているかも・・・」とか思っちゃいますね。。。

で、もうひとつのAOPのメリットというか、最近の動向なのかなー。
それはJ2EEの解体、ということ。最近のJavaまわりの技術の動向として、
使いやすさをよりはっきりと方向性として打ち上げているという印象があります。
例えば、SunなんかでもJ2EE1.4以降の方向性として、EoD(Ease of Development)を
打ち出していたり、JBossなんかでも、Beyond J2EEの一環として、EJBだけでなくPOJOによる
Enterpriseアプリケーションの開発の促進とかをうたっています。
 J2EEはきちんとした仕様でおそらく現在エンタープライズアプリの中では、
もっともこの先がありそうな仕様だとは思うんだけども、複雑すぎる!とは
皆さんが思っているみたいですね。。。。

で、次の栗原さんからはSeasar2(以下S2)の内部的な話が続きました。
特にS2で面白いなと思ったのはAOPの部分をほとんど設定ですますとこです。
これはJBossAOPなんかもそうなんだけど、JBossAOPはインタセプタって言って
コンテナに入った直後にオブジェクトをインタセプトするスタックがあって、
そこでXCが行われます。
S2はXMLJava、Groovy!による設定でAOPを実践します。
細かいシーケンス図もついていたのはステキ!でした。

ああ、順番逆になったけど、IoCの部分もステキでした。
何がステキかというと、S2では主にIoCの制御(オブジェクト生成、設定)を
主にXMLJava、Groovyでも可)で記述するんですが、これがある程度自動化できるそうです。
ちょっとXML名前空間のところは考えてほしい感はあったけども多分そんなに問題にならないでしょう。

 ざっくり所感を書き留めましたが、とにかくこれから何か起こりそうだっていう
感じはありました。日本発のコンテナが世界を狙うのもそう遠くはないかもしれませんね。
がんばれ!!!Seasar!!!Groovyが設定の標準だ(笑)!!!!