首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C4模型

C4模型

作者头像
顾翔
发布2026-09-09 19:30:48
发布2026-09-09 19:30:48
520
举报

C4模型是由Simon Brown提出的软件架构可视化标准,旨在通过4个核心层级,让架构图从“一张混乱的大图”变为“分层次、精准沟通”的工具。

它按受众和细节粒度分为四层(由粗到细):

  • L1 系统上下文(最高层):面向非技术人员(如产品、业务方)。展示你的系统(方框)与用户(小人)及其他外部系统(方框)的交互关系。核心关注:系统边界和外部依赖。
  • L2 容器层:面向架构师、运维。展示系统内部由哪些可独立部署/运行的进程组成(如:Web应用、移动App、数据库、微服务)。核心关注:技术选型(如Spring Boot vs Node.js)和部署边界。
  • L3 组件层:面向开发团队内部。将单个容器解剖,展示内部的逻辑组件(如:Controller、Service、Repository)及其接口调用关系。核心关注:代码模块划分和职责边界。
  • L4 代码层(最低层):面向特定模块开发者。使用类图或ER图展示具体代码实现(如某个类的设计)。建议:通常无需绘制,用IDE逆向生成即可。

L1系统上下文层(System Context)L1: System Context

L2容器层(Container)

L3组件层(Component)

L4代码层(Code)

核心价值(为什么不用UML):

  • 标准符号:仅用方框(系统/容器/组件)和箭头(交互)表示,颜色仅用于分组,避免视觉噪音。
  • 受众对齐:L1给业务看,L2给运维看,L3给开发看,避免给所有人看同一张图。

必备补充(动态视角):

C4本质是静态结构图。若要展示动态行为(如登录流程),请配合时序图使用;若要展示部署,请补充部署图。

实战建议(“必须做”与“不要做”):

✅必须做:每个框图配上标题(如“L1-支付系统上下文”)和图例;L2/L3务必标注技术栈(如“Java 17”)。

❌不要做:不要在L1图里画数据库(数据库属于内部实现);不要试图把所有层级塞进一张图里。

推荐工具:

  • Structurizr(官方DSL,支持代码化绘图,最强推荐)。
  • PlantUML / Mermaid(文本绘图,适合集成到Git文档)。
  • Draw.io / Gliffy(拖拽式,适合快速草图)。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档