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的降临横扫了这些批量刷工作量的"架构"工作。

相关推荐
咩咩啃树皮7 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
CS创新实验室9 小时前
量子计算机的操作系统:原理、实践与经典架构之对比
架构·操作系统·量子计算
人间凡尔赛9 小时前
WAIC 2026 落幕,AI Agent 开发已进入 Harness 架构时代
人工智能·架构
极客侃科技10 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
晏宁科技YaningAI10 小时前
VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析
网络·人工智能·架构·系统架构·信息与通信
剑之所向11 小时前
前后端分离架构
架构
延凡科技11 小时前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
大鱼>15 小时前
深入Real-ESRGAN架构:RRDBNet设计精髓与ONNX/TensorRT部署优化
人工智能·深度学习·架构
旧物有情17 小时前
游戏开发常用架构 #MVP,MVC
游戏·unity·架构·mvc