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

相关推荐
我命由我123451 小时前
Photoshop - Photoshop 使用对齐功能定位元素
学习·职场和发展·产品运营·求职招聘·职场发展·产品经理·学习方法
十六宿舍2 小时前
【软件设计模式-第一课:基础知识了解】
设计模式·架构·面向对象·软件架构
Layer2 小时前
即时通讯系统的关键设计
后端·架构
I Am a robert girl3 小时前
从科学代码库到智能体训练场:ScienceIDE 的架构拆解与工程启示
架构·强化学习·代码仓库·科学计算·监督微调·智能体训练·可编程环境
天远Date Lab5 小时前
零信任架构实战:基于天远名下车辆车牌查询A构建自动化社区车位摇号核验网关
运维·人工智能·架构·自动化
代码方舟5 小时前
零信任架构实战:基于天远名下车辆车牌查询A构建自动化机动车辆资产清查网关
大数据·人工智能·架构·自动化
nvd115 小时前
剖析 LangChain4j 的声明式 Agent 架构:从动态代理到大模型函数回调的底层真相
架构
张彦峰ZYF5 小时前
从智能体到生产系统:企业 Agent 规模化的治理、记忆、知识与安全
人工智能·安全·架构·operatingsystem·agent platform·agentcontrol·agent mesh
Dawson Zhu6 小时前
Multi-Agent架构与适用边界:何时应该使用Multi-Agent架构
人工智能·语言模型·架构·aigc·agi
梦帮科技6 小时前
【3.0修订版】跨链桥架构与资产守恒:BSCBridge、BSCMirrorBridge 与 Lock-and-Mint 模型
架构·去中心化·区块链·智能合约·共识算法·信任链