DDD知识点

面临的问题:

  • 代码可读性很差,每个服务之间调用繁杂,流程混乱
  • 修改优化某服务业务代码时,促使无关的服务的测试用例失败,同时单个功能开发者很难快速就明确问题关键所在。
  • 测试用例特别难编写,需要 mock 大量数据来拉起整块服务

DDD解决的问题:

  • 1、DDD 帮助解决微服务拆分困境:


DDD 对业务分析时,首先会使用「聚合」把关联性强的业务概念划分在一个边界下,并限定「聚合」和「聚合」之间只能通过「聚合根」来访问,这是第一层边界。
其次,在「聚合」基础之上根据「业务相关性」、「业务变化频率」、「组织结构」等约束条件来定义「限界上下文」,这是第二层边界。 有了这两层边界作为约束和限制,微服务的边界也就清晰了,拆分微服务也就变得简单了。

 

  • 2、DDD 有助于统一语言:


领域驱动设计的核心是建立统一的领域模型。领域模型在软件架构中处于核心地位,软件开发过程中,必须以建立领域模型为中心,以保障领域模型的忠实体现。

 

  • 3、DDD 能够应对系统复杂性:


DDD 的核心思想就是要避免业务逻辑的复杂度与技术实现的复杂度混淆在一起,确定业务逻辑与技术实现的边界,从而隔离各自的复杂度,业务逻辑并不关心技术是如何实现的。无论采用何种技术,只要业务需求不变,业务规则就不会变化。


版权声明:本文为huanglei_hacker原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。