C4 Model
前置知识
- 关系——带箭头的线
- 元素——方块和角色
- 关系描述——线上的文字
- 元素的描述——方块和角色里的文字
- 元素的标记——方块和角色的颜色、虚线框
概念
C4模型是一种轻量级的视觉和语言,用于为解释软件系统带来一致性。
C4模型之所以强大,是因为它的简单性和向我们每天合作的多个受众解释我们的系统如何工作的能力。业务、产品和工程人员可以快速掌握这一点,并将体系结构理解到他们需要的技术水平。通过在不同的抽象层次上,重新定义方块和虚线框的含义来将我们的表达限制在一个抽象层次上,从而避免在表达的时候产生抽象层次混乱的问题。
本质上只有两件事。
1.一组简单的抽象概念
2.下面四种图表类型*
上图中的抽象元素分为四种:
-行动者:那些与我们的系统(人类或非人类)互动的人。
-系统:最高级别的抽象,通常由开发团队所有。
-应用程序和商店:组成系统的单个可运行和/或可部署对象。(在纯C4中被称为集装箱-我们选择避免这个装载术语)
-组件:类似于组成应用程序/商店的模块的构建块。
四个层次介绍:
-级别1:上下文图-全局视图(行动者和系统组成,说明系统和系统、系统和人、人与人之间的关系)
-级别2:应用程序图-显示系统内运行的对象(APP和Store组成,说明不同APP之间的关系)
-级别3:组件图-显示使每个应用程序运行的构建块(应用程序模块组成,说明各个模块之间的功能和数据流转)
-级别4:代码图-很少使用,但主要是UML类图(某一个模块的类图,模块类之间的接口定义和对外暴露的接口)
抽象层次---- 系统上下文(元素和关系)-》容器(一个元素包含哪些组件)-》组件(可以是一个手机APP,一个客户端/服务端网页,一套相机设备)-》代码(一个APP包含哪些内容,这之后才是软件的代码结构)
容器借用了进程模型,代指有自己独立进程空间的一种存在,一个容器内部可以有多可有独立进程的软件
之所以会叫为容器,我认为就是因为拥有自己独立的存储空间,两个容器之间的空间互相独立,而在系统上下文中又可以进行通信?
工具
- IcePanel可视化建模工具:团队协作、UX/UI、快速可视化创建模型
- 基于文本的建模 Structurizr: 技术人员,将图表作为代码
- 基于文本的图表 C4-PlantUML: 小型讨论,图表作为代码
附录
C4模型简介
网上银行系统C4模型
icepanel免费绘制c4图
yutube视频文章来源:https://www.toymoban.com/news/detail-696680.html
文章来源地址https://www.toymoban.com/news/detail-696680.html
到了这里,关于架构:C4 Model的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!