http://connpass.com/event/5072/
http://www.slideshare.net/j5ik2o/scala-with-ddd
- Hexagonal Architecture
- ユビキタス言語を用いて、Domainのモデルを定義する。
- シナリオ -> Model -> 実装 -> シナリオ -> ...
- シーン
- オンメモリ・レポジトリ
- レイヤー化
- インフラ層とアプリケーション層からドメイン層を切り離す。
- 他のフレームワークから切り替えることが出来るようになる。
- JPAやSpring Dataに依存しないほうが望ましい。
- MVCのModelの中を更に分類する。
- Observer patternやEvent Listenerで依存を切り分ける
- EntityはIdentityで識別するようにする。
- ○○フラグが出てきたら、ユビキタス言語にあるか確認する。
- Modelにユビキタス言語があるか確認する。
- ARのようなModelは、domainのModelよりinfraのModelにした方が現実的
- 集約毎に操作する
- トランザクションの境界と集約
- Repository Decorator
- Transactionを扱うような場合、Repository用のフレームワークを作ったほうが良い。
- 但し、一番面倒
- P.70を参考。