知识卡片

数据库别绑领域

普通读书笔记卡 · 1765.a

内容

传统分层若让领域对象依赖关系数据库和ORM细节,业务逻辑会被存储技术绑架。真正的领域模型应通过端口、仓储和分层隔离基础设施,保留迁移和演进空间。

参考来源

- 位置:《复杂软件设计之道》第5章《CQRS架构》"5.1.2 传统三层架构"缺点小节(源文件:_chapter_text/ch05.txt) - 结论依据:原文明确"应用层依赖数据层,数据层依赖数据库,导致应用层的业务逻辑严重依赖数据库……实现数据库或前端技术升级时,应用层的业务代码几乎全部需要重新编写,业务代码无法独立于技术而存在",说明领域逻辑绑定数据库会失去演进空间。 - 原始内容:当业务复杂时,更大的业务逻辑会写入应用层的服务类中,因为应用层依赖数据层,数据层依赖数据库,导致应用层的业务逻辑严重依赖数据库,运行时负载集中在数据库一端,造成数据库缓慢或延迟。实现数据库或前端技术升级时,应用层的业务代码几乎全部需要重新编写,业务代码无法独立于技术而存在,无法形成自我演进和思考路径。