C4 模型是一种易于学习、开发人员友好的软件架构图绘制方法(图1,图片来自互联网)。相较于强大的 UML,它更像是一个“简单实用”的好工具。
C4 模型是什么?
- 一组分层抽象(软件系统、容器、组件和代码)
- 一组层次图(系统上下文、容器、组件和代码)
- 独立于符号
- 独立于工具
4 层图型
- 系统上下文图(Context diagrams),第一层的图,说明系统、和其使用者以及其他系统的关系。
- 容器图(Container diagrams),第二层的图,将系统分解为彼此相关的容器(container)。容器可以是应用程序或是资料存储。
- 组件图(Component diagrams),第三层的图,将容器分别为彼此相关的组件,也说明组件和其他组件(或是其他系统)的关系。
- 程式码图(Code diagrams),第四层的图,提供架构元素的设计细节,可以对应到程式码。在此层级的C4模型会用到目前已有的标示方式,例如统一建模语言、ER模型或是集成开发环境产生的示意图。
就像我们打开地图 APP 一样,总是打开所在地附近的区域,然后可以缩放查看关心的信息(图2,图片来自互联网)。
推荐
- 画局部图:只画自己负责的模块
- 分层分级:只画到自己关心的颗粒度,推荐画上下文图、容器图,不推荐手画Level3、Level4
- 简单实用:只用简单的框、文字和单向箭头