So-net無料ブログ作成

DIとAOPがくっついている必然性について [システム開発]

今日は JJUGの基礎セミナーで「DIの基礎」について聞いてきました。

 DIやAOPは概念的には把握してたんですが今まで結局のところ利用する機会がなくて、懇親会で実践的なところがちょっときけたのはもらい物でした。セミナーの内容については気が進んだらまた書きたいと思います。

 で、懇親会で隣に座られたJavaが非ネイティブでまもなく上場されるネットベンチャーの方が座っていらっしゃっていろいろと積極的に質問されていて答えた内容をひとつ披露します。

 JavaのメジャーライブラリとしてSeasar2やSpringがあるが両方ともDIとAOPがくっついているのは何でかって話がありました。その場であまりうまく答えられたかどうかは聞いた人にまかすとして、この2つの内容がくっついてるのは偶然の要素と必然の要素があって、でも機能的にくっついていることのメリットってあんまりないんじゃないかと話してきました。

 まず偶然の要素としてはアーキテクチャとして同じような時期に注目されたこと。ここには2つがくっつくことのメリットはありません。

 次に必然の要素としてJavaを利用する限り両方ともコンテナという概念が必要だったことが上げられると思います。もちろんAOPにはJavaSDK5のアノテーションとか非コンテナ系の実装も可能でしょうが、コンテナという仕組みを利用すると、バイトコードや言語仕様をいじらなくてもJDK1.4で実装できてしまったりします。で、DIコンテナとAOPコンテナを別々に実装すると競合とかいろいろなことを考えなくてはならなくなってめんどいので、「じゃ、はやってるんだし一緒に実装したら都合がいいんじゃないか」的な発想でくっついているのではないかと思います。

 実際のところSpringにしてもSeasar2にしても、技術的な発展の流れを抑えているわけではないので間違っているかもしれませんが、くっついていることで実装がきれいとかコード量が減るとか、技術的に必然的なことはあまりないんじゃないかと思えたしだいです。

Simple is best.
--
butineko


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:ネットコミュニティ

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

メッセージを送る
RSS RSS

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。