架构整洁之道-第六部分-实现细节

201 阅读1分钟

代码设计与代码结构

soa架构(按层封装)

2024-12-10 22.14.00.png

设计要点

  • 按照将数据链路分为三层:
    • Controller:负责对外交互例如Web层
    • Service:主要的核心业务逻辑的封装层
    • Repository:数据交互层,封装与数据库的操作
  • 依赖关系自顶向下
  • 实现简单并且容易理解

缺点

  • 无法展现具体的业务领域信息。(如何理解这句话?由于分层架构并不是按照业务的流程进行分层,分层架构的核心是在技术层面,如果超出技术圈外,产品和业务无法理解,自然无法很好的和业务领域进行融合。)

领域驱动架构(按功能封装)

2024-12-10 22.14.08.png

设计要点

  • 按照业务域进行划分,按照不同的业务进行分包和设计,一个业务包就包含该业务领域的所有实现
  • 业务域内部按照SOA架构做水平分层

缺点

  • 和SOA架构并没有很大的区别,该架构在业务领域上更贴合业务。

六边形架构(端口和适配器)

2024-12-10 22.14.15.png 上图中Orders是业务领域的抽象

设计要点

  • 实现业务领域和底层实现(数据库、框架等)隔离

按组件封装

2024-12-10 22.14.30.png

设计要点

  • 将“业务逻辑”与“持久化代码”合并在一起,称为“组件"
  • 通过OrderService实现组件与外部的隔离