C4模型是一种轻量级的视觉和语言,用于为解释软件系统带来一致性。
C4模型之所以强大,是因为它的简单性和向我们每天合作的多个受众解释我们的系统如何工作的能力。业务、产品和工程人员可以快速掌握这一点,并将体系结构理解到他们需要的技术水平。通过在不同的抽象层次上,重新定义方块和虚线框的含义来将我们的表达限制在一个抽象层次上,从而避免在表达的时候产生抽象层次混乱的问题。
本质上只有两件事。
1.一组简单的抽象概念
2.下面四种图表类型*

上图中的抽象元素分为四种:
-行动者:那些与我们的系统(人类或非人类)互动的人。
-系统:最高级别的抽象,通常由开发团队所有。
-应用程序和商店:组成系统的单个可运行和/或可部署对象。(在纯C4中被称为集装箱-我们选择避免这个装载术语)
-组件:类似于组成应用程序/商店的模块的构建块。
四个层次介绍:
-级别1:上下文图-全局视图(行动者和系统组成,说明系统和系统、系统和人、人与人之间的关系)
-级别2:应用程序图-显示系统内运行的对象(APP和Store组成,说明不同APP之间的关系)
-级别3:组件图-显示使每个应用程序运行的构建块(应用程序模块组成,说明各个模块之间的功能和数据流转)
-级别4:代码图-很少使用,但主要是UML类图(某一个模块的类图,模块类之间的接口定义和对外暴露的接口)
抽象层次---- 系统上下文(元素和关系)-》容器(一个元素包含哪些组件)-》组件(可以是一个手机APP,一个客户端/服务端网页,一套相机设备)-》代码(一个APP包含哪些内容,这之后才是软件的代码结构)
容器借用了进程模型,代指有自己独立进程空间的一种存在,一个容器内部可以有多可有独立进程的软件
之所以会叫为容器,我认为就是因为拥有自己独立的存储空间,两个容器之间的空间互相独立,而在系统上下文中又可以进行通信?
C4模型简介
网上银行系统C4模型
icepanel免费绘制c4图
yutube视频
