DDDの用語
from DDD
Domain-Driven Designのエッセンス 第1回|オブジェクトの広場
思想
戦略
ドメインモデリングをするための原則
コアドメイン/汎用サブドメイン、bounded context、context map...
戦術
モデリングを具体的に実装するパターン
Entity, Repositoryパターン, layered architecture...
Services
オブジェクトではなくて大事な処理
RepositoryはEntityを返す(Value Objectではない)(諸説あり)
Strategic Design
[Domain-Driven Designのエッセンス 第1回|オブジェクトの広場
アプリケーションの連携のパターン
アプリケーションの切り分けにも有用らしい
Domain-Driven Designのエッセンス 第3回|オブジェクトの広場
やりがちなミス
コンテキストが違うものを無理やり共通化してしまう
例:メソッドやプロパティが同じという理由で、abstructクラスを作成して共通化したが、別のコンテキストのモデル同士だった!(本当は共通化するべきでない)
別コンテキストかどうかを認識できるかが大切なポイント(見落としがち)
Shared Kernel
抽出して汎用化できると便利
ドメインは時々刻々変化していくので、統合の継続した努力(Continuous Integration)が必須
Cohesive Mechanisms
ドメインの凝集度をあげていく
foreachで頑張るよりCollectionを使ったほうがドメインロジックが明白になる
Generic Subdomains
ビジネス上の差別化要因にならない汎用的な機能
あって当たり前の機能
サードパーティのライブラリをつかうモチベーションが高い