DTO
データ変換オブジェクト
初出はマーチン・ファウラーのPoEAA
Data Transfer Object
DTOは必ずしも必要ではない。複雑性が増してしまう
実践ドメイン駆動設計 P.495
複数の集約のインスタンスを単一ビューにレンダリングしたいというときによく使われる
ビューに表示する必要のあるすべての属性を保持するよう設計される
リポジトリから必要な集約のインスタンスを読み出し、アセンブラ(シリアライザ)に移譲してDTOへマップする
ビューへのレンダリングはDTOを経由して行われる
関数型ドメインモデリング P.44
転送されるデータオブジェクトは境界づけられたコンテキスト内で定義されたオブジェクト(ドメインオブジェクト)と似ているが、同じではない
コンテキスト内のインフラストラクチャの一部としてシリアライズされ共有されるように設計されている
コンテキストからコンテキストへデータを転送する場面において、JSONへシリアライズ・デシリアライズする境界に接地するのがDTO型
ドメイン型からDTOの変換、シリアライズのちにJSON
JSONからデシリアライズし、DTO型へ変換されたのちドメイン型
関数型ドメインモデリング P.228
境界づけられたコンテキスト間の契約として機能するため契約違反をしない