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

相关推荐
warm3snow6 小时前
AI 重塑产品管理工具:从 Jira 到智能体项目经理的终极演进
人工智能·ai·excel·项目管理·飞书·产品经理·jira·协同·tapd
喷火龙8号8 小时前
单 Token 认证方案的进阶优化:透明刷新机制
后端·架构
葫芦的运维日志9 小时前
网站也要身份证:HTTPS 证书申请指南
架构
stark张宇11 小时前
MySQL 核心内幕:从索引原理、字段选型到日志机制与外键约束,一篇打通数据库任督二脉
数据库·mysql·架构
兆子龙12 小时前
【React】19 深度解析:掌握新一代 React 特性
前端·架构
无双_Joney12 小时前
心路散文 - 转职遇到AI浪潮,AIGC时刻人的价值是什么?
前端·后端·架构
嚴寒13 小时前
前端配环境配到崩溃?这个一键脚手架让我少掉了一把头发
前端·react.js·架构
老迟聊架构14 小时前
说说Vibe Coding的适应范围
人工智能·程序员·架构
看晴天了14 小时前
新框架electronbun项目入门指南,解决electron体积大的难题,Electrobun:Electron 的轻量级革命 —— 12MB 应用 +
前端·架构
sTone8737514 小时前
web后端开发概念: VO 和 PO
java·后端·架构