hi,我是熵减,见字如面。
对于软件开发团队来说,写软件设计文档,花架构图,是日常工作中的关键一项。
而其中,如何画好系统设计的架构图呢? Simon Brown 就 提出 C4 模型,来解决这个问题。
基于C4模型的脚手架,架构师们就可以统一团队内的不同层级的视角,交付一个成体系的架构设计。
下面具体看一下C4模型吧。
什么是C4模型?
C4 模型是一种轻量级的软件架构图的表示法,旨在帮助团队更好地理解和沟通软件架构设计。
C4代表了四个层次的抽象化,即:
- 上下文(Context):上下文层次主要描述了软件系统与外部系统或人员之间的交互关系,其目的是为了提供软件系统的背景和整体结构。
- 容器(Container):容器层次描述了软件系统中的容器(如服务器、数据库等)以及它们之间的关系,其目的是为了提供软件系统内部的大体结构。
- 组件(Component):组件层次描述了容器内的组件(如Web应用程序、服务、数据库架构等)以及它们之间的关系,其目的是为了更细致地了解软件系统的内部组成。
- 代码(Code):代码层次描述了组件内的代码实现,其目的是为了帮助开发者更好地了解组件的实现和技术细节。
如上图所示,这四个层次对应着从高到低的不同的抽象程度。对应到软件系统中来说,就是能够从不同的层级视图上,展示软件的架构,使得设计者和开发者们可以更好地理解、交流架构设计,并推进架构的演进升级。
第1级:系统上下文图
系统上下文图是软件系统设计的起点&#