Mais conteúdo relacionado
Semelhante a 20100324 勉強会資料(ドメイン駆動) (20)
20100324 勉強会資料(ドメイン駆動)
- 19. 本の目次
序章 橋渡し
第一部 背景
第1章 尊重すべき価値
第2章 パターン入門 DDDの前提となる思考方法と道具
第3章 TDDとリファクタリング
第二部 DDDの応用
第4章 新しいデフォルトアーキテクチャ
第5章 DDDの手法で前進する サンプルアプリケーションを
第6章 インフラのための準備 テスト駆動で深堀り
第7章 ルールを機能させる
第三部 PoEAAの応用
第8章 永続記憶のためのインフラ
POEAAとの連携
第9章 NHibernateを導入する
第四部 次は何か
第10章 これからの設計テクニック
第11章 UIにフォーカス おまけ(筆者の友人が書いたもの)
第五部 付録
付録A 他のドメインモデルスタイル
付録B 論じたパターンのカタログ 19
- 33. 第6章 インフラのための準備
・ライフスタイルとしてのPOCO
・POCO…Plain Old CLR Object (POJOの.NET版)
・FowlerはPI(Persistence Ignorance)という
表現を使用
・PIかどうかを見分けるには、
「ドメインモデルにインフラ関連の外部DLLに関する参照が含ま
れているかどうか」を確認するのがはやい
(例)O/RマッパーとしてNHibernateを使用している場合、
nhibernate.dllに対する参照がドメインモデルのコードに含まれて
いたら、不吉なにおい
参考: Visual Studio 2010 EF4 POCO Part1
http://blogs.msdn.com/daisukei/archive/2009/06/02/visual-studio-2010-ef4-poco-part1.aspx
Entity Framework POCO Template for .NET 3.5 : Don't Be Iffy
http://thedatafarm.com/blog/data-access/entity-framework-poco-template-for-net-3-5/
33
- 35. 第6章 インフラのための準備
・以下のようなものは不吉なにおい
1.特定の基底クラス(object以外)の継承:
ドメインモデル開発後、永続記憶に対応しようとしたときに、継承が要求されてドメイン
モデルを変更しなければならないリスク
2.与えられたファクトリだけでインスタンス生成:
ファクトリの強制は、ダーティーチェックで便宜を受けるためであることが多い
3.コレクションのために特別な(自由に選択できるなら使っていなかった)データ型を使用:
レイジーロードをサポートするために使うことがある
4.特別なインターフェースを実装:
永続可能とするためにインフラ提供のインターフェースを(ひとつまたは複数)実装す
る
5.特別なコンストラクタを提供:
データベースの値でインスタンスを再構成できるようにするために
6.特別な必須フィールドを提供:
インフラがGuidベースのIdフィールドや、intのVersionを要求
7.特定の言語要素を避ける:
readonlyフィールドを避ける
35