DIコンテナと設計

トラックバックをいただいたので、ちょっとコメント。

http://d.hatena.ne.jp/mopemope/20060111/1136943281

DIコンテナというのはあくまでも土台(プラットフォーム)だと思います。S2Containerだけだと、自由度がありすぎて大抵の開発者は困惑するでしょう。

だって、正直言って「依存性を外部定義できます」なんていわれて「へぇ〜」とは思いますが、具体的にどう使えばいいかなんて、最初は思いつかない。

S2DAOS2JSFのように、S2Containerの上で動くフレームワークが提供されてはじめて、使い物になったのではないかと思います。フレームワークって、ソースコードだけではなく設計そのものを再利用してしまおうという考え方です。だから、フレームワークの利用者は設計なんてあまり考えなくても良いのが理想と思います。

一般の開発者がdiconに複雑な定義をしなきゃいけないようなアプリケーションは、まずまともに動かないでしょう。絶対デバッグしにくいから。

S2JSFも、アクションやロジックの標準的な切り方が示されているから使いやすいし、AutoRegisterを使えば、diconもほとんど書かなくていい。それくらい単純化されているからいいんです。

複雑なdiconを書くのは、あくまでもS2Container上で動作するベースとなるフレームワークを開発する側の一部の人間。だから、S2JMSのdiconが多少複雑になるのはOKです。別に大量に作るわけではないので、RADツールみたいなものは必要ないかなと思います。

・・・なんだかとりとめなくなってきた。反省。