学習ロードマップ
依存方向の制御と同心円モデルに代表される、大規模/長寿命のアプリ開発に耐える設計の原則を体系的に学ぶロードマップ。
このロードマップが扱うもの
このロードマップは、機能追加のたびに壊れがちなコードベースと向き合っているバックエンド / アプリケーションエンジニアを対象にしています。学び終えたときには、依存方向の制御や境界設計の原則を理解し、クリーンアーキテクチャやヘキサゴナル、オニオンなどの派生形を状況に応じて選び、現実的な範囲で適用・運用できる状態を目指します。
このロードマップの全体像
このロードマップは、機能追加のたびに壊れがちなコードベースと向き合っているバックエンド / アプリケーションエンジニアを対象にしています。学び終えたときには、依存方向の制御や境界設計の原則を理解し、クリーンアーキテクチャやヘキサゴナル、オニオンなどの派生形を状況に応じて選び、現実的な範囲で適用・運用できる状態を目指します。
1. 原則の俯瞰: 単一責任、依存性逆転、境界づけ、SOLID といった設計原則の意味と関係を整理します。 2. 同心円モデルの理解: エンティティ・ユースケース・インターフェースアダプタ・フレームワークという層の役割と、依存の向きを身につけます。 3. ユースケース駆動の設計: 業務フローをユースケースとして切り出し、入出力ポートとアダプタでの実装に落とし込みます。 4. ドメインモデルとアプリケーションサービス: ドメインロジックをフレームワークから独立させ、アプリケーション層で手続きをまとめる書き方を学びます。 5. テスト戦略: ユニット・結合・エンドツーエンドの役割分担、ドメインの純粋関数化によってテスト容易性を高めます。 6. 現実への適用: フル適用と部分適用の基準、既存コードのリファクタリング、チーム合意の作り方を考えます。
クリーンアーキテクチャは「常に正しい」構造ではなく、プロジェクトの規模や寿命、チーム習熟度に対してオーバーヘッドになることもあります。レイヤーを増やしたこと自体が目的化すると、意味のない抽象が乱立し保守性を逆に下げます。フレームワーク固有の機能(DI、ORM、ミドルウェア)と、独立させたいドメインロジックとの境界設計が肝です。周辺では、SOLID・DDD・デザインパターン、テスト駆動開発、RDB 設計、Web / API フレームワークの構造、リファクタリング手法、チームでの設計レビュー文化を並行して押さえておくと、クリーンアーキテクチャを「ルール」ではなく判断道具として扱えるようになります。
ロードマップ