クリーンアーキテクチャ入門
クリーンアーキテクチャの「なぜ」を中心に、設計思想を体系的に学ぶコンテンツです。
学習の流れ
本質
| ドキュメント | 内容 | 前提知識 |
|---|---|---|
| 01. なぜクリーンアーキテクチャか | 解決したい問題、依存の方向の重要性 | なし |
| 02. 依存ルール | 依存ルールの本質、内側が外側を知らない理由 | 01 |
| 03. 境界 | 境界とは何か、なぜ・どこに引くのか | 01, 02 |
| 04. アーキテクチャの変種 | ヘキサゴナル/オニオン/クリーンの関係 | 01, 02, 03 |
実践
依存ルールを正しく守ると、プラグイン構造が自然に生まれます。 実践セクションでは、本質で学んだ原則がどのような構造を可能にするかを解説します。
| ドキュメント | 内容 | 前提知識 |
|---|---|---|
| プラグインアーキテクチャ | 依存ルールがプラグイン構造を可能にする理由 | 01, 02 |
| 依存の組み立て | Composition Rootでの組み立て方 | 01, 02 |
| プラグイン機構 | 動的な発見・登録・有効化の仕組み | 01, 02 |
コラム
| ドキュメント | 内容 |
|---|---|
| 過剰設計の罠 | アーキテクチャは目的ではなく手段 |
| トレードオフ | コストと得 られる価値の判断基準 |
このセクションで学べること
なぜ(Why)
- なぜこのアーキテクチャが生まれたのか
- なぜ依存の方向が重要なのか
- なぜ境界を引く必要があるのか
本質
- 同心円の図が本当に伝えたいこと
- ヘキサゴナル、オニオン、クリーンの共通点
- フレームワークやDBに依存しないとはどういうことか
実践
- 依存ルールを守った結果として得られるプラグイン構造
- Composition Rootでの依存関係の組み立て
- 動的な発見・登録・有効化によるプラグイン機構
判断基準
- どこに境界を引くべきか
- いつこのアーキテクチャを使うべきか
- いつ使わないべきか
対象読者
- クリーンアーキテクチャの図は見たことがあるが本質がわからない方
- 「依存性逆転」の意味を説明できない方
- フレームワークに強く依存したコードを書いている方
- 設計の「なぜ」を深く理解したい方