/note/tech

データ詰め替え戦略

クリーンアーキテクチャの例は、データの詰め替え過剰にみえる。

『Get Your Hands Dirty on Clean Architecture 』にこのマッピング戦略(詰め替え戦略)が書かれている

  • No Mapping (レイヤ間でモデルを共有し、詰め替えをしない)
  • 2-way Mapping (各レイヤで独自のモデルを持ち、レイヤを跨ぐ呼び出しは上位レイヤが詰め替えの責務を負う)
  • Full Mapping (各レイヤで独自のモデルを持ち、レイヤを跨ぐ呼び出しには専用のモデルを使う)

またこの戦略のどれを選ぶかの基準は『Balancing Coupling in Software Design』を合わせて検討すると良い。Balancing Couplingではモジュール間の統合強度として、次の2つを区別している。

モデル結合 (モジュール間でモデルを共有する。契約結合よりも強い結合)

契約結合 (モジュール間のやり取り専用のモデルを作る)