什么是DDD?

什么是DDD?_第1张图片

什么是DDD?

DDD的全称叫:Domain-Driven Design,中文名称叫:领域驱动设计,是一种通过将实现连接到持续进化的模型来满足复杂需求的软件开发方法。领域驱动设计的前提是:

把项目的主要重点放在核心领域(core domain)和域逻辑

把复杂的设计放在有界域(bounded context)的模型上

发起一个创造性的合作之间的技术和域界专家以迭代地完善的概念模式,解决特定领域的问题---维基百科

参考:https://zh.wikipedia.org/wiki/%E5%9F%9F%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91

看到上面的名称,我也是蒙的...

个人理解:DDD是一种处理高复杂的设计思想,将系统分层解耦,梳理业务边界、设计好可拓展的技术和系统架构,然后在这套基础上演进。比如:你要盖100层楼,但是考虑现在的资金和成本及技术条件,所以暂时先盖10层,但是以后有条件了,可以在这个基础上再盖上90层。如果是传统,不知道这个边界就可能要推倒重来,而ddd从一开始就设计好边界和架构(技术架构、业务架构、系统架构),从这个基础上进行演进。好比这100层是战略上的需要,而暂时建10层是战术上的实现!(仅代表个人理解

DDD主要解决什么问题?

  • 解决系统架构不清晰、内聚低、耦合高;

  • 减少重构风险;

  • 使各业务边界清晰;

  • 可以随业务发展可很好拓展;

最后

DDD是一种设计思想,通过敏捷演变而来,主要解决使系统减少重构风险,并且清晰规划业务架构、系统架构、技术架构,使系统在快速发展过程避免重构推倒重来。当然了解更多请参照下文:

参考文章:

有赞:https://mp.weixin.qq.com/s/_WVISlz105E4YItt_TbIMA

美团:https://tech.meituan.com/2017/12/22/ddd-in-practice.html

https://www.jianshu.com/p/b6ec06d6b594

https://baike.baidu.com/item/DDD/3539802

https://www.cnblogs.com/netfocus/p/5548025.html

https://engineering.linecorp.com/zh-hant/blog/domain-driven-design/

https://blog.csdn.net/qq_34370153/article/details/104175903

https://developer.aliyun.com/article/319159

你可能感兴趣的:(概念,java,人工智能,算法,敏捷开发,阿里巴巴)