西蒙布朗-C4模型

关于 C4 模型的一些解释

C4 模型是来自 software architecture for developers 一书的定义,指的是 Context 上下文场景、Container 容器、Component 组件和 Classes 类(或者 Code 代码),意思指一个软件架构是由这些模型呈树形结构组成。

关注代码仍然是大多数软件开发生命周期中关注的焦点,这是有一定道理,因为代码是最终交付。但如果你不得不向别人解释关于系统是如何工作的,你会从代码开始解释吗?

确实代码并不能讲述系统的整个故事,在缺乏文档的情况下,人们通常会开始在白板上或纸上用图框和线条解释系统的主要构建块是什么,它们是如何连接的。而使用 Microsoft Visio, Rational Software Architect 或 Sparx Enterprise Architect 等专业工具又比较复杂。

更好的办法是在不同的抽象层次创建不同的图 diagram,一个简单的图 diagram 比复杂的图能够更有效表达描述。下图是 C4 模型的示意图:

  • 类 Class: 这是面向对象世界常用, 类是我们系统最小的构建模块。

  • 组件 Component: 一个组件可以认为是由一个或多个类组成的逻辑组,比如一个审计 audit 组件或授权服务能够用于决定资源的访问是否被允许,组件典型地由许多协同类组成微服务架构可以认为是一种组件。

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

  • Context/ 系统 System: 一个系统是一个高层次抽象和代表,一个系统由多个单独的容器组成,比如财务系统,银行系统或网站系统等。

原文地址:https://www.cnblogs.com/yako/p/8461469.html