Seasar Conference 2009 White

3月14日に開催された、Seasarカンファレンスの感想です。

ひがやすを氏の講演

ひがやすを氏の講演は全部で3つでした。

  1. Seasar2の今と未来
  2. 最新のDI&AOP
  3. Slim3のすべて

それぞれが独立したテーマを扱っていますが、全体で1つの大きなストーリーになっているとも感じられました。つまり「Seasar2は現在どうなっているのか」「それはどういうコンセプトに基づき、どういう経緯で至ったものなのか」「Seasar2の経験をふまえて生まれたSlim3とはどういうものなのか」という流れで理解することができたということです。以下、各セッションの内容を簡単に整理します。

Seasar2の今と未来

Seasar2の今に関しては、「SAStruts+S2JDBCの組み合わせによって、どのように生産性が向上できるのか」という内容でした。具体的には:

  • Hot deployによるstep-by-stepプログラミング
  • S2JDBCの流れるようなインターフェイスとデータベース管理
  • scaffoldによるプロジェクトの自動生成

といったもので、最新の『Seasar2入門』に書かれている内容と基本的には同じだったと思います。

Seasar2入門

Seasar2入門


Seasar2の未来に関しては、コアプロジェクトについては基本的には現在の形を最終形として、新たな機能追加は特に行わず、基本的には枯れさせる方向であることが主張されました。ただし、メンテナンスはもちろん行うし、サンドボックスを含むその他のプロジェクトのダイナミズムは今後とも失われるものではないということは強調されていました。

最新のDI&AOP

DIの話は、DI前夜からはじまり、SSH*1がもたらしたXML地獄とそれに対するソリューション、そして現在のHot deployに至る流れが説明されました。Slim3Seasar2.4のHot deployが持っていた問題点を改善したものという位置づけで、DIの最終形と見なされていました。


続くAOPの話は、DIコンテナとセットになっており、コンテナによってDIと同時にアスペクトのウィービングが行われるという構造が解説されました。これについては、ひがさん自身が「今から使うのは結構お得かもしれない」と言っていた通り、DIコンテナによるコンポーネントの自動登録とアスペクトの自動登録によって、開発者の立場からするとかなり分かりやすい形になっているのではないかと思います。

Slim3のすべて

現在開発中のSlim3に関するプレゼンテーションでした。Slim3は「"Simple & Less is More"をコンセプトとするフルスタックWebアプリケーションフレームワークである」と説明され、その上で重要な特徴としては以下のものがあげられていました:

  • Hot deployment
  • Less Configulation
  • Less Learning Cost

基本的には「標準的な考え方」と「規約」に準拠することで、あれこれ考えなければいけないものをなるべく減らし、Hot deployでさくさく開発していこうという趣旨のフレームワークであると理解することができると思います。その上で特筆すべきものとしては、以下があげられると思います。

考察

DI&AOP観からSlim3に至る流れは非常に明快でした。Slim3の「機能をごちゃごちゃと積んで結局学習コストをあげてしまうよりは、とにかくシンプルに分かりやすく、気持ちよく開発して行こう」というコンセプトは共感が持てるものでした。「Strutsでそこそこうまく行った実績があるのであれば、Slim3によって間違いなく生産性をあげることができるのではないだろうか」という印象を受けましたが、同じように感じた人は少なくなかったのではないかと思います。追記すると、Slim3パワポ資料はすべて英語、サイトも同じく英語といった部分に、Slim3の視線が海外に向けられていることが感じられました。


反面、受け取る側の課題も明確になったと思います。つまり、フレームワークが明確なコンセプトを打ち出し、開発のあり方を方向付けていることを踏まえて、今度は、どう設計し、どう開発フェーズに載せていくべきなのか、ということを考えていく必要があると思います。例えば:

  • アクションクラスとエンティティとの間に生まれるであろうドメイン層をどう扱うのか。
  • ユースケースからはじめ、どうすれば適切に規約に合わせたパッケージングに落としていけるのか。

といったことなどが挙げられるかと思います。


こういった問題を一から考えなければ行けないかと言えば、もちろんそんなことはなくて、Struts(およびSXStruts)を使いながら組み上げてきた経験の上に積み上げていくことはできると思います。ただし、その経験が完全にドキュメント化され、コンセンサスが取れているかというと必ずしもそうではないのが現状ではないでしょうか。この要件と実装をつなぐ場所に関するパラダイムをどう生産的に構築していくのかという部分が利用者にとっての今後の課題になっていくのではないかと思います。