【しーふぉーもでる】

C4モデル(アーキテクチャ図) とは?

💡 4段階のズームで描く、誰にでも伝わるアーキテクチャ図
📌 このページのポイント
C4モデル — 4つのズームレベル Level 1 Context システム全体と 外部の関係 Level 2 Container アプリ・DB等の 技術的な箱 Level 3 Component モジュール・ サービス単位 Level 4 Code クラス・関数 レベルの詳細 ← 俯瞰(ビジネス視点)     詳細(技術視点)→ 例: ECサイト ユーザー↔EC Web + API + DB 注文・決済・在庫 OrderService システム全景 コンテナ構成 コンポーネント コード設計
C4モデル — ズームインで詳細化する4つのレベル
ひよこ ひよこ

C4モデルって何?アーキテクチャ図とは違うの?

ペンギン先生 ペンギン先生

アーキテクチャ図の描き方のフレームワークだよ。Google Mapsみたいに、広域表示から詳細表示まで4段階のズームレベルがあるんだ

ひよこ ひよこ

4つのレベルってどう使い分けるの?

ペンギン先生 ペンギン先生

Level 1のContext図は経営者やユーザー向けで、システム全体の位置づけを示す。Level 2のContainer図は開発チーム向けで、WebアプリやDBの構成を示す。Level 3のComponent図はモジュール単位、Level 4のCode図はクラスレベルだよ

ひよこ ひよこ

全部のレベルを必ず描かないといけないの?

ペンギン先生 ペンギン先生

いや、Level 1とLevel 2だけでも十分役立つよ。Level 4のCode図はUMLクラス図に近くて、IDEで自動生成した方が効率的だから手で描くことは少ないね

ひよこ ひよこ

ツールは何を使えばいいの?

ペンギン先生 ペンギン先生

Simon Brown自身が作ったStructurizrが有名で、DSLでコードとしてアーキテクチャを定義できる。PlantUMLやMermaidからC4図を生成する拡張もあるよ。コードで管理すればバージョン管理もできて、図が古くなる問題を防げるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「C4モデル」って出てきたら「4段階のズームレベルでアーキテクチャを描く手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「C4 Model」 = 4つのCのモデル
💬 Context、Container、Component、Codeの頭文字が全部Cだから C4 なんだよ
← 用語集にもどる