是什么
4代表4种不同的抽象层级,展示不同粒度的系统架构图
干什么
在业务架构确定情况下,可视化软件架构
哪四层
level1 Context diagram
level2 container diagram
level3 component diagram
level4 code
特点
- 可读性强
- 消除歧义
- 简洁明了
- 多角色看
图形
- 单向线
- 带有注释说明线的用途
Note
- C4没有官方的图例
- 蓝色表示内部系统,灰色表示外部系统
context diagram
- 目标听众:非技术人员
- 表征系统全局,没技术选型、协议等细节
- 展示的是关注的系统本身,用户和其他依赖的系统
- 变化缓慢
container diagram
- 加入一些技术选型
- 不会体现用了什么库等细节
- 如何识别container,是不是可以单独部署,两个container之间是否存在网络上的交互,或者多线程间的交互
- container之间的依赖关系可以加上技术选型
- 目标听众:技术人员
- 对某个系统的放大
- 展示容器之间如何交互
- label加上技术选型
component diagram
- 具体到某一个服务中某一个container的一些实现,比如后端开发一个container对应不同的controller,具体对应到代码是在哪实现的。
- 对某个容器的放大
- 更细粒度的技术细节()
code diagram
- 比如涉及到哪些类或者接口
- 一般很少画
- 变化极快