C6 戦術的設計とコード実装
戦術的設計とは
ビジネスの価値を実現するために、戦略的設計で定めた方針をコードとして具体化し、「どのようにコードを書くべきか」という実装の方向性の指針となる
戦術的設計を行わない場合の問題点
データ中心の実装
ビジネスロジックがデータの操作に埋もれてしまう
一貫性のない実装
実装方針が定まっていないため、一貫性がない
同様の処理が異なる方法で実装されているなど
ドメインの知識が埋もれる
ビジネスの本質的な知識がコードから読み取りにくくなる
ドメインの用語がコードに反映されていない
変更に弱い実装
機能の追加や変更が困難になる
戦術的設計を行った場合
ドメインモデル中心の実装
ビジネスの本質をコードで表現する
一貫性のある実装
戦術的設計パターンを活用した統一的な実装
ドメイン知識を明示的に表現
ビジネスの本質的な知識をコードで表現する
ビジネス中心の変更に強い実装
将来の変更や拡張を考慮した設計