软件架构设计|C4模型

前言

在做系统架构设计过程中,有很多工具,今天给大家推荐一款比较简洁具备层次化的设计模型,C4模型;希望能为大家系统设计起到一定的帮助

什么是C4模型

C4 模型是来自 software architecture for developers 一书的定义,指的是 Context 上下文场景、Container 容器、Component 组件和 Classes 类(或者 Code 代码),意思指一个软件架构是由这些模型呈树形结构组成。
 确实代码并不能讲述系统的整个故事,在缺乏文档的情况下,人们通常会开始在白板上或纸上用图框和线条解释系统的主要构建块是什么,它们是如何连接的。而使用Microsoft Visio, Rational Software Architect 或 Sparx Enterprise Architect等专业工具又比较复杂。

更好的办法是在不同的抽象层次创建不同的图diagram,一个简单的图diagram比复杂的图能够更有效表达描述。
在 www.4model.com 提供了更多的信息、视频、示例图表和工具链接。如果你的团队正纠结于软件架构沟通方面的问题,那么可以看看这些资料。

4层的划分

C4架构图主要街道一下几个问题:1. 为哪些用户提供什么服务. 完成这个系统使用了哪些服务3. 每个服务是由哪些组件实现的. 实现这个组件需要完成什么以上4个问题分别由语境图容器图组件图类图组成。

软件架构设计|C4模型

容器图Container diagram

一个容器代表组件执行或驻留的地方,这可能是一个Web容器或应用服务器,也可以是富客户端应用或数据库,容器是做为系统一部分启动的,容器之间通讯是通过远程接口如 SOAP web service, RESTful interface, Java RMI, Microsoft WCF, messaging,等进行, Docker可以认为是一个这样的容器。

主要帮助解决软件系统的整体形态,高层次的技术决策、职责在系统如何分布、容器之间如何相互交流,为实现特性,作为一个开发者应该在哪里写代码。
容器的概念包含但不限于Web服务器、应用服务器、总线、web浏览器等。图例如下:

软件架构设计|C4模型

类图 Class

这是面向对象世界常用, 类是我们系统最小的构建模块.如下示例

软件架构设计|C4模型
/p>

如果你在这方面有不同方面的见解,也欢迎在下方进行留言,一起讨论

想要了解更多信息,可关注本公众号(一起学开源);或请长按以下二维码添加助手。将拉你加入社区进行交流

一起学开源

/p>

来源:一起学开源

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月15日
下一篇 2021年5月15日

相关推荐