DDD岁月史书之二:分层架构是DDD提出的吗

DDD领域驱动设计批评文集

做强化自测题获得"软件方法建模师"称号

《软件方法》各章合集


前天发了文章:国外DDD圈子的"业务用例"《软件方法》第3章 组织价值和流程改进,其中有部分内容如下:

有同学针对文章中所用的图提了另外的问题:分层架构是领域驱动设计提出的吗?

图中文字只是说"领域驱动设计引入分层架构",并没有说"领域驱动设计提出分层架构"。因此,虽然这个问题是因这个图片问出,但我下面的回答并非评价图片中的内容,而是回答"分层架构是领域驱动设计提出的吗"这个问题。

我依稀记得已经回答过类似问题,于是去翻查以往文章,没有发现。原来,当时只是发了视频,没有发文章。视频如下:

分层架构是DDD提出的吗?

https://www.bilibili.com/video/BV1Ej411b7v1

现在,我把视频内容变成文章,分享给大家。

**********

用"DDD提出分层"或"领域驱动设计提出分层"之类的关键词搜索,确实有很多文章写"领域驱动设计提出分层架构",例如:

上面的图片中,说到Eric Evans在书中"提出"分层架构,但书中并没有这样说。

Eric Evans只是很平淡地说了一下。如果他认为这是他自己创新的一个东西,应该会用很大的篇幅。

Eric Evans在书中也给出了一些引用的文献,例如1996年的Buschmann:

POSA(面向模式的软件体系结构)这套书已经出了5卷。第1卷中用很大的篇幅(原版有21页)介绍了"层"这个架构模式。

Martin Fowler在1996年的书《分析模式》书中有一章专门介绍架构模式。Fowler在书里面说,三层架构20世纪70年代就提出来了。

1968年,Edsger W. Dijkstra 的文章The structure of the "THE"-multiprogramming system中的"分层架构":

Fowler2003年的《企业应用架构模式》,第1章专门讲分层:

再回想"小时候"看的书。

我是1997年参加工作的,第一个职业阶段用的开发工具是Visual Basic,从4.0(16位)一直用到6.0。当时没有什么Google之类的,有MSDN光盘,还有各种大厚书。

一本1997年讲VB5的书里面提到的三层结构:

至于以领域为中心的分层架构,下图出自1999年Desmond Francis D'Souza 的《UML对象、组件和框架:Catalysis方法》:

通过添加层(例如ViewModel、应用服务、数据映射......)和添加抽象(A依赖于B变成依赖于IB),可以产生各种变体。

很多所谓的架构师,懂的"架构设计"就是这些东西,根本没有能力建模复杂的核心域逻辑。

幸运的是,AI的降临横扫了这些批量刷工作量的"架构"工作。

相关推荐
Sheffi663 小时前
AI智能体编程时代的技术架构:Claude Agent与OpenAI Codex在Xcode中的集成原理
人工智能·架构·xcode
麦聪聊数据3 小时前
基于 Web SQL 与 SQL2API 的数据治理架构实践
运维·sql·架构
yq1982043011563 小时前
静思书屋:一个高性能图书信息站的技术架构与优化实践
架构
yangyanping201083 小时前
系统监控Prometheus之监控原理和配置
分布式·架构·prometheus
新缸中之脑4 小时前
AI代理的两种沙盒架构
人工智能·架构
BryanGG4 小时前
管理技巧 美团
产品经理
得一录4 小时前
DPDK 技术概览
架构·dpdk
数形长夏6 小时前
命令行界面的神秘符号,是上一代程序复用的尝试
架构·bash·batch
Tadas-Gao6 小时前
架构逆转向量:AI时代规范驱动开发的范式重构与实践图谱
人工智能·云原生·重构·架构·系统架构·大模型