学習ロードマップ

クリーンアーキテクチャ

依存方向の制御と同心円モデルに代表される、大規模/長寿命のアプリ開発に耐える設計の原則を体系的に学ぶロードマップ。

Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発 [入門]ドメイン駆動設計ーー基礎と実践・クリーンアーキテクチャ 【POD】ACCESSテックブック ちょうぜつソフトウェア設計入門ーーPHPで理解するオブジェクト指向の活用
SCROLL TO BEGIN

このロードマップが扱うもの

/

このロードマップの全体像

このロードマップは、機能追加のたびに壊れがちなコードベースと向き合っているバックエンド / アプリケーションエンジニアを対象にしています。学び終えたときには、依存方向の制御や境界設計の原則を理解し、クリーンアーキテクチャやヘキサゴナル、オニオンなどの派生形を状況に応じて選び、現実的な範囲で適用・運用できる状態を目指します。

学習ステップ

1. 原則の俯瞰: 単一責任、依存性逆転、境界づけ、SOLID といった設計原則の意味と関係を整理します。 2. 同心円モデルの理解: エンティティ・ユースケース・インターフェースアダプタ・フレームワークという層の役割と、依存の向きを身につけます。 3. ユースケース駆動の設計: 業務フローをユースケースとして切り出し、入出力ポートとアダプタでの実装に落とし込みます。 4. ドメインモデルとアプリケーションサービス: ドメインロジックをフレームワークから独立させ、アプリケーション層で手続きをまとめる書き方を学びます。 5. テスト戦略: ユニット・結合・エンドツーエンドの役割分担、ドメインの純粋関数化によってテスト容易性を高めます。 6. 現実への適用: フル適用と部分適用の基準、既存コードのリファクタリング、チーム合意の作り方を考えます。

注意点と周辺知識

クリーンアーキテクチャは「常に正しい」構造ではなく、プロジェクトの規模や寿命、チーム習熟度に対してオーバーヘッドになることもあります。レイヤーを増やしたこと自体が目的化すると、意味のない抽象が乱立し保守性を逆に下げます。フレームワーク固有の機能(DI、ORM、ミドルウェア)と、独立させたいドメインロジックとの境界設計が肝です。周辺では、SOLID・DDD・デザインパターン、テスト駆動開発、RDB 設計、Web / API フレームワークの構造、リファクタリング手法、チームでの設計レビュー文化を並行して押さえておくと、クリーンアーキテクチャを「ルール」ではなく判断道具として扱えるようになります。

ロードマップ

5 つのステップで読み進める

  1. 01
    ステップ 01 Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践
    Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践
  2. 02
    ステップ 02 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発
    手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発
  3. 03
    ステップ 03 [入門]ドメイン駆動設計ーー基礎と実践・クリーンアーキテクチャ
    [入門]ドメイン駆動設計ーー基礎と実践・クリーンアーキテクチャ
  4. 04
    ステップ 04 【POD】ACCESSテックブック
    【POD】ACCESSテックブック
  5. 05
    ステップ 05 ちょうぜつソフトウェア設計入門ーーPHPで理解するオブジェクト指向の活用
    ちょうぜつソフトウェア設計入門ーーPHPで理解するオブジェクト指向の活用

第 1 章

Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践

  1. Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践

    SOLID 原則・TDD・DDD を Python で束ね、クリーンアーキテクチャを実践へ落とす起点。同心円と依存方向の感覚をコードで掴み、以降の言語横断の議論を支える土台を作る。

    Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践
    この章の 1 冊 Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践

    Python でクリーンアーキテクチャ・SOLID・DDD・TDD を一冊で実践する

    この本で身につくこと
    • クリーンアーキテクチャの各層(エンティティ・ユースケース・アダプター・インフラ)の責務とその連携を実装レベルで説明できる
    • SOLID原則5つを Python コードに当てはめ、どの原則がどの設計判断に効くかを判断できる
    • ドメイン駆動設計(DDD)の戦術パターン(エンティティ・値オブジェクト・リポジトリ)を Python で表現できる
    • ユニットテスト・統合テストを用いた包括的なテストカバレッジを、依存性逆転を活かして構築できる

    想定読者: Pythonでの開発経験はあるが「コードが肥大化してフレームワーク依存が外せない」という課題を感じている中級エンジニア。設計知識をコードレベルで身につけたい人

    本の詳細を見る →
  2. 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発

    ヘキサゴナル(ポート&アダプタ)を手を動かして組み上げ、依存方向の制御を体得する段。1冊目の原則に具体的な構造を与え、境界の引き方を身体で覚える役割。

    手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発
    この章の 1 冊 手を動かしてわかるクリーンアーキテクチャ ヘキサゴナルアーキテクチャによるクリーンなアプリケーション開発

    ヘキサゴナル設計を Java で段階実装する実践書

    この本で身につくこと
    • ドメイン層をフレームワークや DB から切り離し、依存の方向を内向きに統一する設計ができる
    • 入力ポート・出力ポートの役割を区別し、ユースケースを実装する際の境界を定義できる
    • Web アダプタと永続化アダプタをポートに対して実装し、置換可能な構造を組み立てられる
    • アーキテクチャ境界ごとのテスト戦略(ユニット / 統合 / システム)を使い分けられる

    想定読者: レイヤードアーキテクチャの限界を感じ、ユースケース・ポート・アダプタパターンを実装レベルで理解したい中級 Java 開発者です。MVC や3層構成を実務で使った経験があり、依存の方向やテスト容易性を自分のコードで整理し直したい方に向いています。

    本の詳細を見る →
  3. [入門]ドメイン駆動設計ーー基礎と実践・クリーンアーキテクチャ

    ドメイン駆動設計の基礎を据え直し、クリーンアーキテクチャと接続して内側の核を厚くする段。なぜ依存を内向きにするのかをモデリングの側から問い直す。

    [入門]ドメイン駆動設計ーー基礎と実践・クリーンアーキテクチャ
    この章の 1 冊 [入門]ドメイン駆動設計ーー基礎と実践・クリーンアーキテクチャ

    DDD の思想からクリーンアーキテクチャの実装まで段階的に習得する

    この本で身につくこと
    • 「エヴァンス本」の要点をオブジェクト指向・アジャイル・分散アーキテクチャとの関係性から再構成して理解できる
    • ユビキタス言語の策定プロセスと、開発チーム・ドメイン専門家の協働における具体的な使い方を把握できる
    • イベントストーミングを用いてドメインイベントを洗い出し、その知識をソースコードへ落とし込む手順を体験できる
    • イベントソーシングの概念(状態変化をイベントとして記録し再構築する設計)を実例から理解できる

    想定読者: オブジェクト指向の基礎は押さえており、DDD を実務に導入したいが「エヴァンス本」の抽象度に挫折した経験を持つバックエンドエンジニア

    本の詳細を見る →
  4. 【POD】ACCESSテックブック

    現場の技術トピックを集めた実務テックブックで、設計原則を個別の課題に当てる視点を補う段。理論の道筋に対し、適用時の判断材料として脇に置く。

    【POD】ACCESSテックブック
    この章の 1 冊 【POD】ACCESSテックブック

    ACCESS技術者によるモバイル開発の実践知見をまとめた合同誌

    この本で身につくこと
    • クリーンアーキテクチャをAndroidアプリ開発へ適用する際の設計方針と、レイヤ分割の考え方を把握できます。
    • Androidのファイルストレージ(内部/外部/スコープドストレージ)の仕様と使い分けの勘所を整理できます。
    • 企業内エンジニアが実務で直面した技術課題と、その解決アプローチの事例を複数の視点から把握できます。
    • 各章が独立した合同誌の構成を活かし、関心のあるテーマだけを選んで知識を補完する読み方を身につけられます。

    想定読者: Androidアプリ開発に携わるエンジニアで、クリーンアーキテクチャの実装方針やAndroidのファイルストレージ仕様を、現場の技術者の視点から整理したい中級者の方に向いています。

    本の詳細を見る →
  5. ちょうぜつソフトウェア設計入門ーーPHPで理解するオブジェクト指向の活用

    オブジェクト指向の活用を PHP で平易に説き、設計原則をなぜ守るのかへ立ち返る段。入門の語り口で全体を反芻し、言語に依らない設計観を固める着地点。

    ちょうぜつソフトウェア設計入門ーーPHPで理解するオブジェクト指向の活用
    この章の 1 冊 ちょうぜつソフトウェア設計入門ーーPHPで理解するオブジェクト指向の活用

    OOPを起点にクリーンアーキテクチャ・SOLID・TDD・DIを体系的に習得する

    この本で身につくこと
    • クリーンアーキテクチャの依存方向ルールを理解し、レイヤ分割の判断軸を持てる
    • SOLID原則の各原則(単一責任・開放閉鎖・リスコフ置換・インターフェース分離・依存性逆転)を具体コードで説明できる
    • テスト駆動開発(TDD)のサイクルを実践し、テスト可能な設計を意識して書けるようになる
    • 依存性注入(DI)コンテナの仕組みを理解し、疎結合な設計を実装できる

    想定読者: オブジェクト指向の基礎は知っているが、設計原則・アーキテクチャ・テスト手法を体系化できていない中級開発者。PHPユーザーに限らず、言語を問わず設計力を底上げしたい人。

    本の詳細を見る →

この道で読む 5 冊(購入)

読む順に並べています。まずは1冊目から始めましょう。

まず読む1冊
Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践
Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践

SOLID 原則・TDD・DDD を Python で束ね、クリーンアーキテクチャを実践へ落とす起点。同心円と依存方向の感覚をコードで掴み、以降の言語横断の議論を支える土台を作る。

続けて読む

まず読む1冊 Pythonではじめるクリーンアーキテクチャ SOLID原則/ドメイン駆動設計/テスト駆動開発を実践 見る →