什么是 DDD ?

什么是 DDD ?

领域驱动设计(Domain Driven Design,DDD)它提供的是一种开展业务建模和软件设计的方法论。

随着微服务架构火热,DDD 成为了构建微服务系统的主流设计思想和模式。

DDD 非常强调开发人员与业务领域专家一起进行高效的协作。

针对业务领域,DDD 通过对业务架构和技术架构进行整合,提出了一组核心概念,包括:

  • 用于描述业务的通用语言(Ubiquitous Language)
  • 用于对业务进行拆分的限界上下文(Boundary Context)
  • 用于设计业务对象的领域模型对象(Domain Model Object)
  • 用于实现业务规则的领域服务(Domain Service)
  • 用于管理业务状态的领域事件(Domain Event)
  • 用于保存业务数据的资源库(Repository)
  • 用于实现业务交互的应用服务(Application Service)

DDD 案例设计思路

关注业务抽象而不重复业务实现

  • 基于核心逻辑抽象业务:关注系统的主流程,而选择性忽略子流程。
  • 基于复杂度抽象业务:关注具有一定复杂度的业务功能,而不要过多夹杂简单而又重复的功能。
  • 基于完整性抽象业务:关注业务体系的覆盖范围,确保具有一定广度,不要陷入过多的细节。

// TODO 待补充

4 个赞

DDD难道不是 @ddd:rofl:

是游戏王早期的一个系列,现在跟不上环境了

真正公司开发起来还是鸡飞狗跳 :rofl:

又是坟 :joy:

扯淡的设计

啊,不是顶顶顶

美团写的还可以DDD在大众点评交易系统演进中的应用 - 美团技术团队 (meituan.com)

1 个赞

确实我也看了

ddd看起来确实美好,但实际开发起来一地鸡毛,人员的水平参差不齐也是问题,再就是项目迭代越来越复杂,领域代码爆炸真是像屎山,而且真感觉有点过度设计了

和hadoop搭建的大数据一样绝大多数公司没必要,就没到那个量级

增加就业岗位神器

:rofl: :rofl:

From 快问快答 to 开发调优