niiyz
4/29/2016 - 11:13 AM

ddd-memo.md

Study-DDD

ドメイン駆動設計の自分メモ。

ドメイン

  • 対象範囲、メインテーマ

視点

  • 視線の注がれるところ。
  • 物事を見たり考えたりする立場。観点。
  • 透視図法で、画像と直角に交わる仮定の一点。対象を眺める位置。

エンティティ

  • 一意なもの
  • 視点によってエンティティにするしないは変わる。
  • あるドメインではエンティティだがそれがメインとなった時それはドメインになる。

サービス

リポジトリ

  • データ源でありデータベース、CSV、ファイル何でもいい。
  • Repositoryクラスにはデータ取得、更新、新規登録の処理を書く。
  • LaravelでPostgreSQLを使用している場合、RepositoryクラスにはQueryビルダーやSQLでのDB操作の処理を書くことになる。
  • メソッドにget、getById、getByName、getList、insert、updateなどユビキタス言語を使う。
  • インターフェースを作成することで、データ源が切り替えれるように設計する。