【くりーんあーきてくちゃ】
クリーンアーキテクチャ とは?
最終更新:
💡 ビジネスロジックの「独立宣言」
ビジネスロジックを外部の詳細(DB、フレームワーク、UI)から独立させる設計手法。Robert C. Martinが提唱。
📌 このページのポイント
なぜビジネスロジックを独立させるの?
4つの層の役割は?
代表的な図では、内側からEntitiesが一般的なビジネスルール、Use Casesがアプリ固有のルール、Interface Adaptersがデータや呼び出しの変換、Frameworks & DriversがDBやWebなどの詳細を担うよ。4という数は模式的で、必ず四つの層やフォルダーに分ける規則ではないんだ。
実務で完全に適用すべき?
目的と負担を見て境界を設計しよう。層の数や名前をそろえるより、内側のコードが外側の具体的な型や名前を参照しないことが中心のルール。HTTPやDB固有のデータをそのまま内側へ持ち込まず、内側に合う形へ変換するんだ。
内側の処理からDBを呼びたいときはどうするの?
内側で定めたインターフェースを外側の実装が満たすようにすれば、実行時には外へ処理を渡しても、コードの依存は内向きにできるよ。「外から内へ」は実行順の制限ではないんだ。ヘキサゴナルなどにも関心を分ける共通の目的があるけど、細部まで同じ設計という意味ではないよ。
まとめ:ざっくりこれだけ覚えればOK!
「クリーンアーキテクチャ」って出てきたら「ビジネスロジックを外部の詳細から独立させる設計」と思えればだいたいOK!
📖 おまけ:英語の意味
「Clean Architecture」 = きれいなアーキテクチャ
💬 Clean(きれいな)Architecture(建築様式)。Robert C. Martin(Uncle Bob)が2012年に発表したよ