架构设计原则之整洁架构

3,323 阅读3分钟

整洁架构(Clean Architecture)是由Robert C. Martin提出的一种软件设计架构,它强调将软件系统分解为独立的层次和组件,以便于维护、测试和部署。整洁架构的核心思想是将系统分解为多个层次,每个层次都有明确的职责和依赖关系,从而实现高内聚、低耦合的设计。
整洁架构的核心包括以下几个层次:

  1. 实体层(Entities):实体层包含了应用程序的核心业务逻辑和数据模型,它们是应用程序中最基本的构件。实体层定义了应用程序中的数据结构,以及业务逻辑的校验和处理规则。
  2. 用例层(Use Cases):用例层包含了应用程序的业务逻辑,它们定义了应用程序的行为和操作。用例层负责处理用户请求,并协调各个领域对象之间的交互,从而实现应用程序的业务逻辑。
  3. 接口适配层(Interface Adapters):接口适配层负责将用例层和外部世界进行交互。它们包含了视图层(View)、控制器(Controller)、适配器(Adapter)等组件,负责将外部请求转换为用例层能够处理的格式,同时将用例层的响应转换为外部世界能够理解的格式。
  4. 框架和驱动层(Frameworks and Drivers):框架和驱动层包含了应用程序的基础设施和外部环境。它们包含了数据库、Web服务器、消息队列等组件,负责将应用程序和外部环境进行交互。 image.png

在整洁架构的中心是业务实体(黄色部分)与业务应用(红色部分),业务实体就是那些核心业务逻辑,而业务应用就是面向用户的那些服务(Service)。它们合起来组成了业务领域层,也就是通过领域模型形成的业务代码的实现。
整洁架构的最外层是各种技术框架,包括:

  • 与UI界面的交互
  • 客户端与服务器的网络交互
  • 与硬件设备交互
  • 与数据库交互
  • 等等

整洁架构的精华在于其中间的适配器层,它通过适配器将核心的业务代码,与外围的技术框架进行解耦。因此,如何设计适配层,让业务代码与技术框架解耦,让业务开发团队与技术架构团队各自独立地工作,成了整洁架构落地的核心。

image.png

进一步细化整洁架构,将其划分为 2 个部分:主动适配器被动适配器

  • 主动适配器,又称为“北向适配器”,就是由前端用户以不同的形式发起业务请求,然后交由应用层去接收请求,交由领域层去处理业务。用户可以用浏览器、客户端、移动 App、微信端、物联网专用设备等各种不同形式发起请求。然而,通过北向适配器,最后以同样的形式调用应用层。
  • 被动适配器,又称为“南向适配器”,就是在业务领域层完成各种业务处理以后,以某种形式持久化存储最终的结果数据。最终的数据可以存储到关系型数据库、NoSQL 数据库、NewSQL 数据库、Redis 缓存中,或者以消息队列的形式发送给其他应用系统。但不论采用什么形式,业务领域层只有一套,但持久化存储可以有各种不同形式。南向适配器将业务逻辑与存储技术解耦

本文学习材料参考 解决技术改造困局的钥匙:整洁架构