DDD本の1章~5章までで気になったところまとめ

DDD本の1章から5章までで気になったところの個人的まとめです.

www.shoeisha.co.jp

2章

ユビキタス言語

とにかく用語などを使うのではなく,そのチームでの定義を設けその言語を使えということ. 一つのチームに一つのユビキタス言語を使用することが理想であると書かれていた

4章

レイヤードアーキテクチャ(LAYERED ARCHITECTURE)

  1. ユーザインタフェース層,プレゼンテーション層
  2. アプリケーション層
  3. ドメイン
  4. インフラストラクチャ層

以上の4つのレイヤーからなるアーキテクチャである.1.が一番上のレイヤーで4.が一番下のレイヤーである.

ユーザインタフェース層は表示周りの処理,アプリケーション層は上と下をつなぐインターフェース的な役割,ドメイン層はロジック周りの処理,インフラストラクチャ層はデータの永続化などドメイン層を支える処理を行う.

このアーキテクチャの特徴は,複雑なコードをレイヤーで分割し,それによって各レイヤーごとの責務に集中するだけでよくなる点である. 各レイヤーが下のレイヤーにのみ依存し,上のレイヤーとは疎結合な関係を保つことを容易に実行できる.

5章

エンティティと値オブジェクト

エンティティは,各エンティティに識別番号などを持たせオブジェクトごとの同一性を判断する. 例として,座席が挙げられていた. 座席はどれも同じものであるが,座席番号がついており座席ごとで区別することができる.

それに対して値オブジェクトは,同一性を判断しないオブジェクトである. この値オブジェクトの中にはエンティティなども含まれており,その場合は値オブジェクトの中のエンティティで同一性を判断することになる.

サービス

エンティティや値オブジェクトを触るインターフェースとして提供されているのが,サービスである. サービスを設けることにより,ロジック部分とエンティティや値オブジェクト部分を明確に分離できる. サービスは単にエンティティや値オブジェクトをつなぐだけなので,ステートレスである必要がある.

モジュール

ドメインロジックなどを他のコードと切り離すときなど利用する場面が多いらしい

感想

まだ序章