架构理解之C4
2019-01-29 本文已影响5人
任嘉平生愿
一个系统通过4个层面来分析理解
系统上下文
你所开发的系统和它的用户以及它所依赖的系统之间的关系。
容器图
系统是由容器组成的。借用了进程模型,代指有自己独立进程空间的一种存在。不管是在服务器上的单独进程空间,还是在浏览器里的单独进程空间,只要是单独的进程空间就可以看作一个容器。
组件图
组件在这里面很好的把接口和它的实现类打包成一个概念来表达关系。我个人觉得有时候一些存在于代码中,但又不是接口的某些东西,比如Service、Controller、Repository之类也可以用组件图来表达
代码图
代码图没什么可说的,就是UML里的类图之类很细节的图。
三张扩展图
系统景观图
连一些间接相关的系统都会标示出来,那些系统的用户以及用户之间的关系也会标示出来,只是内部的用户会用灰色标记。
动态图
它是用来表达动态关系的,也就是不同的元素之间是如何调用来完成一个业务的。所以动态图不仅仅适用于一个层面上,它在系统级、容器级和组件级都可以画,表达的目标是不一样的。
部署图
考虑到DevOps运动如火如荼,这个图可以变成很好的Dev和Ops之间沟通的桥梁。