TL;DR
- ドメインオブジェクトを直接シリアライズせず、シリアライズ専用の DTO に変換してからシリアライズする。デシリアライズはその逆を行う。
- ドメイン固有のチェックは、DTO からドメインオブジェクトに変換するときに行う。
内容
Domain Modeling Made Functional 第3章 境界づけられたコンテキストのコミュニケーションで見たように、シリアライズを簡単にするには、ドメインオブジェクトをシリアライズ専用の型である DTO に変換し、その DTO をシリアライズすればよい。デシリアライズでは逆に、受け取ったデータを DTO にデシリアライズし、DTO をドメインオブジェクトに変換する。
境界づけられたコンテキストの内側のほうがエラー処理を制御しやすいので(第10章)、ドメイン固有のチェックは、DTO からドメインオブジェクトに変換するときに行うべきである。