知识卡片

DDD为何沉寂十余年:缺少微服务这个技术落地载体

普通读书笔记卡

内容

2003年埃里克·埃文斯出版《领域驱动设计》,DDD由此诞生,其核心思想是从业务视角出发、根据限界上下文边界划分业务领域、定义领域模型,并建立领域模型与代码模型的映射关系。但DDD提出后在软件开发领域长期”雷声大、雨点小”,直到Martin Fowler提出微服务架构,DDD才真正迎来了自己的时代。这个历史给出的启示是:一套设计方法论即使思想本身是正确、系统的,如果缺少一个与之匹配的技术落地载体,价值也很难被真正兑现——在单体架构时代,即使按照DDD的方式划分好了领域边界,这些边界也只能停留在代码组织的内部约定层面,很难被物理隔离和独立验证;而微服务架构恰好提供了”把逻辑边界固化成物理边界(独立部署单元)”的能力,DDD划出的限界上下文第一次有了对应的、可以独立演进和运行的物理载体,两者一拍即合,DDD才真正从理论走向大规模实践。这提示:评估一套方法论”过时”还是”有价值”,有时候要看它是否正在等待一个合适的技术条件成熟,而不是简单归因于方法论本身设计得好不好。

参考来源

- 位置:第3章《微服务设计为什么要选择DDD》"3.2 微服务拆分和设计的困境"(源文件:_epub-src/OEBPS/Text/chapter2-3-2.xhtml) - 结论依据:原文说明"2003年埃里克·埃文斯(Eric Evans)出版了《领域驱动设计》这本书后,DDD诞生……但DDD提出后在软件开发领域一直都是'雷声大,雨点小'!直到Martin Fowler提出微服务架构后,DDD才真正迎来了自己的时代……于是越来越多的人开始将DDD作为领域建模和微服务设计的指导思想",直接支撑本卡片结论。 - 原始内容:但DDD提出后在软件开发领域一直都是"雷声大,雨点小"!直到Martin Fowler提出微服务架构后,DDD才真正迎来了自己的时代。微服务架构出现后,一些熟悉DDD设计方法的软件工程师在进行微服务设计时,发现可以利用DDD设计方法来建立领域模型,划分领域边界,再根据这些领域边界从业务视角来划分微服务边界。