C4 Model是一种简洁有序的架构模型,四个“C”分别表示“Context”、“Container”、“Component”和“Code”,是由上而下逐步细化的四个层级。
Contex即上下文,它表示我们正在构架的软件系统和用户、其它系统之间的关系。例如:
容器(Container)把关注点放在被架构的系统本身,显示组成系统的容器(例如:APP、Web端、API、微服务、数据库等)及彼此之间的关系。例如:
组件(Component)把一个容器放大,拆分成不同的抽象逻辑,这一层级已经涉及代码层面的内容。例如:
而抽象逻辑内部代码之间的关系由Code这一层展示。
C4-PlantUML是为PlantUML封装的一套模板,用来画C4架构图既美观又方便。下面是我画的样子:
和上面的例子相比,好像不太适合画较复杂的架构,布局不太好处理,另外连线太多容易重叠在一块傻傻分不清楚。