【しーふぉーもでる】
C4モデル(アーキテクチャ図) とは?
最終更新:
💡 全体からコードへ、説明したい範囲を絞って描く
ソフトウェアアーキテクチャを4段階の詳細度(Context、Container、Component、Code)で表現する図解手法。抽象度を使い分けて、異なるステークホルダーに適切な粒度で説明できる。
📌 このページのポイント
- Context → Container → Component → Code の4段階でアーキテクチャを図解する
- Context図は対象システムと利用者・外部システムの関係を示す
- Containerはアプリやデータの保管先。Componentは一つのContainerの内部を示す
- 4段階すべてが必須ではなく、伝えたい内容に合う図を選ぶ
C4モデルって、アーキテクチャ図とは違うの?
ソフトウェアの構造を、全体から詳細へ範囲を絞って説明する図の描き方だよ。Contextは対象のシステムと周囲の関係、Containerは中のアプリやデータの保管先、Componentは一つのアプリなどの内部、Codeはその一部のコードの構造を示すんだ
4段階を全部描かなければいけない?
必要な図だけでいいよ。公式サイトでも、多くのチームではContextとContainerで十分としている。Code図は一つのComponentのクラスや関数などを詳しく見せるもので、必要な部分をIDEなどで生成する使い方もあるんだ
図をコードで管理すれば古くならない?
変更を記録しやすくはなるけれど、実際のシステムに合わせて更新することは必要だよ。公式サイトは、図を直接描く方法と、一つの構造モデルから複数の図を作る方法を区別している。伝える相手と内容に合う方法を選ぼう
まとめ:ざっくりこれだけ覚えればOK!
「C4モデル」って出てきたら「4段階の詳細度でアーキテクチャを描く手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「C4 Model」 = 4つのCのモデル
💬 Context、Container、Component、Codeの頭文字が全部Cだから C4 なんだよ