/note/tech

ドメイン駆動設計と依存性逆転の原則

ドメイン駆動設計とクリーンアーキテクチャにおけるドメイン層とインフラ層の依存関係の逆転は何故か大きな関心を呼ぶトピックになってる感じだけど、一般的なシステムで考慮する必要はないように思える。

ドメイン層とインフラ層を依存関係の逆転で分離する目的はドメイン層とインフラ層の依存関係を切り離したい、つまりインフラ層を交換可能にしたいというニーズがあるという事が前提になるが、一般的なシステム開発でそのようなニーズは無い。

あるとしても部分的に参照するDBを変えるといった程度だろう。

対象のシステムがパッケージソフトで顧客が好みのDBを選択できるという特性があるという状況以外は考慮する必要がないように思える。

必要も無いのに余計な柔軟性を持たせるのはYAGNI原則に反する為、あまり望ましいものではない。

テスト容易性を考慮してもStrategyパターンでロジックを注入できれば十分だろう(テスト時はモックを注入すればよい)