ピースペース

DIのメリットを少しだけわかった気になってみる;

leave a comment »

SoCにコミットするぞ!シリーズ第2弾
ASP.NET MVCプロジェクトにコマンドハンドラーの導入を試みてみる。

新しい開発プロジェクト♪に巡り会えたので
miso_soupさんご紹介のEFMVCをチェックしてみた。
http://d.hatena.ne.jp/miso_soup3/20120719/1342686797

CommandBus, Command, CommandHandlerとRepository
の関係が説明されていて助かった。 ありがとう!→miso_soupさん

たしかに、クラスが増えるのは不安要素かも。
しかし、各所のコードは短くなるし、
決まった(決められた)書き方になって、機械的にコードが書けるようになる。
の心理的メリットは大きいと思う。
プロジェクトが進んで、機能が追加されて、コードが増えるにつれて
だんだんと増す得体の知れない不安
に、事前にきちんと対処しようとする心得。はやはりどうしたって必要だと思う。
いいと思う→CQRSパターン

さて、クラスの増加もソース上は大した問題でない 。
プロジェクトやフォルダを適当な粒度に分解すればいいだけ。
そこもきれいに整理されている→EFMVCサンプル

で、問題は実行時のインスタンスの管理
「使う人が適時勝手に準備してね;」は早晩破綻する。
に統括的に対処する。のが、DI。ってことかな??

コントローラの機能をコンポーネントに分解して本体をダイエットする。
アプリケーションをコンポジットにする。で増えるオブジェクトの対処にDIが欠かせない。
メリットはコンポジット化にあり、DIは条件になる。
そうゆうことだ。そうゆうことにしとこ。あとは身体で理解すればいい。

EFMVCのサンプルはMVC4プロジェクトだけれども
CommandProcessorやCore部分はMVC3でも問題なく使える。
DIコンテナも、速度的にも良いみたいな記事もあったのでそのままAutofacを使うことにする。
こちらも、MVC3用がNuGetでセットアップできる。

でも、BootStorapperの中のコードの意味がわからない(T.T)
結局、やっぱり、DependencyResolverの理解は必要らしい;;
とにかく、学習の動機が少しずつはっきりしてきた。

Written by nasu38yen

2012年7月26日 @ 9:43 AM

カテゴリー: .NET, プログラム

Tagged with

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。