前天发了文章:国外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的降临横扫了这些批量刷工作量的"架构"工作。