More Related Content
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring Programming camp code reading 20131209_buildinsidermeetup Base DDD(ドメイン駆動設計) 参考文献を巡る旅 What's hot (12)
2015-12-16 某S社、出直しDDDってるってよ A critique of ansi sql isolation levels 解説公開用 2014.03.19 linux joshi_security_public DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 名著『リーダブルコード』を解説者と一緒に読み解こう - 7章 制御フローを読みやすくする ceph acceleration and storage architecture Similar to 20100324 勉強会資料(ドメイン駆動) (20)
【JJUG CCC 2016 Fall 公開版】ドメイン駆動設計とscala 〜既存プロジェクトへの適用〜 地方企業がソーシャルゲーム開発を成功させるための10のポイント 実はとても面白い...Documentation library Janog31 bof-pattern-sasaki-01 3週連続DDDその3 ドメイン駆動設計 戦略的設計 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