Open3
日本の開発者、まだClean Architectureで消耗しているの?
Clean Architecture vs. Vertical Slices Architectureの比較
クリーンアーキテクチャ
- 構造
- 厳密に区分されたレイヤー
- 依存関係のルール
- 内側のレイヤーは外側のレイヤーに依存しない
- メリット
- テスト容易性
- 長期的なメンテナンスのしやすさ
- デメリット
- 初期の設計と実装に時間がかかる
- モノリス構成になりやすい
- Too Muchな抽象化
ヴァーティカルスライス + CQRS
- 構造
- 機能ごとに分離されたモジュール
- CQRS
- コマンド(書き込み)とクエリ(読み込み)の責任を分離
- CRUDとVertical Slicesと相性が良い
- メリット
- 開発速度の向上
- 技術選択の柔軟性
- パフォーマンスとセキュリティの最適化
- ビジネス要件の実態に沿った機能追加
- 機能が一箇所にまとまり、把握しやすい
- マイクロサービス化しやすい
- デメリット
- 全体の一貫性を保つための追加設計が必要
アーキテクチャ選定ポイント
- クリーンアーキテクチャ
- 長期的なプロジェクトやメンテナンスが重要な場合に適している
- ヴァーティカルスライス + CQRS
- 迅速な開発と技術の柔軟性を重視する場合、パフォーマンスやセキュリティが要求されるプロジェクトに向いている
必要に応じてVertical Sliceの中にClean Architectureを組み込むことも可能。
Vertical Slicesは実用主義、アジャイル、ビジネス要望により近いアプローチに重点を置いている。