概要
クリーンアーキテクチャは、ソフトウェアの設計手法の一つで、
依存関係を内側から外側に一方向に限定することで、柔軟で保守性の高いシステムを作る考え方です。
アプリケーションのビジネスルールを中心に据え、
外部のフレームワークやデータベース、UIに依存しない構造を目指します。
正式名称
Clean Architecture(クリーンアーキテクチャ)
略称
特になし
特徴
- 依存関係の逆転:ビジネスロジックが外部技術に依存しない
- 円形レイヤー構造:内側に重要なルール、外側に周辺技術を配置
- テスト容易性:ビジネスロジックを切り離して単体テスト可能
- 保守性・拡張性:UIやDBを変更してもビジネスロジックは影響を受けにくい
- フレームワーク非依存:特定の技術に縛られない設計が可能
具体例
例えばECサイトを作る場合:
- エンティティ層(ビジネスルール)
商品や注文のルール(在庫がなければ注文できない 等) - ユースケース層(アプリケーションルール)
「商品を購入する」という処理の流れを定義 - インターフェース層
WebコントローラやAPIエンドポイントでユースケースを呼び出す - インフラ層
データベース(MySQLなど)や外部サービスとの連携
関連用語
用語 | 解説 |
---|---|
レイヤードアーキテクチャ | 階層ごとに責務を分ける設計手法 |
ヘキサゴナルアーキテクチャ(ポート&アダプタ) | 外部との接続を明確に分離する設計 |
オンionアーキテクチャ | 円形に重なる層で依存を内側に集中させる設計 |
依存性逆転の原則(DIP) | 上位レベルが下位レベルに依存しないというSOLID原則の一つ |