🌚

用C4-PlantUML画软件架构图

Posted at — Jan 17, 2020
#编程 #最佳实践

C4 Model是一种简洁有序的架构模型,四个“C”分别表示“Context”、“Container”、“Component”和“Code”,是由上而下逐步细化的四个层级。

Contex即上下文,它表示我们正在构架的软件系统和用户、其它系统之间的关系。例如:

System Landscape diagram for Big Bank plc

容器(Container)把关注点放在被架构的系统本身,显示组成系统的容器(例如:APP、Web端、API、微服务、数据库等)及彼此之间的关系。例如:

Container diagram for Internet Banking System

组件(Component)把一个容器放大,拆分成不同的抽象逻辑,这一层级已经涉及代码层面的内容。例如:

Component diagram for Internet Banking System - API Application

而抽象逻辑内部代码之间的关系由Code这一层展示。

C4-PlantUML是为PlantUML封装的一套模板,用来画C4架构图既美观又方便。下面是我画的样子:

产品 交易 财务流业务架构

和上面的例子相比,好像不太适合画较复杂的架构,布局不太好处理,另外连线太多容易重叠在一块傻傻分不清楚。