知识卡片

微服务代码模型的一级目录直接映射DDD四层

普通读书笔记卡

内容

DDD本身并没有给出一套标准的代码模型,不同人会结合自己项目情况做个性化设计。书中给出的方案是让微服务代码的一级目录直接对应DDD分层架构的四层:interfaces(用户接口层,存放前端交互、数据转换、facade接口等代码)、application(应用层,存放应用服务组合编排和事件订阅相关代码)、domain(领域层,由一个或多个独立聚合目录组成,存放聚合根、实体、值对象、领域服务等核心业务逻辑代码)、infrastructure(基础层,存放通用技术能力、三方库、数据库等基础资源代码)。这个设计选择的价值在于:让原本只存在于架构图和团队约定里的分层职责边界,变成代码目录结构里真实可见、可以被工具和代码评审强制约束的物理边界——一段代码到底该不该写在这里,不再只靠开发者的自觉,而是一眼就能从它所在的目录判断出来是否符合分层职责;这也让新成员理解代码结构的成本大幅降低,因为目录结构本身就是对DDD分层架构的直接映射,不需要额外记忆一套独立于架构文档的代码组织规则。

参考来源

- 位置:《中台架构与实现:基于DDD和微服务》第14章《如何用DDD设计微服务代码模型》"14.2.1 一级代码目录"(源文件:_epub-src/OEBPS/Text/chapter4-3-2-1.xhtml) - 结论依据:原文说明"微服务一级目录是按照DDD分层架构的分层职责来定义的。在微服务代码模型里,我们分别定义了用户接口层、应用层、领域层和基础层四层,并分别为它们建立了interfaces、application、domain和infrastructure四个一级代码目录",直接支撑本卡片结论。 - 原始内容:微服务一级目录是按照DDD分层架构的分层职责来定义的。在微服务代码模型里,我们分别定义了用户接口层、应用层、领域层和基础层四层,并分别为它们建立了interfaces、application、domain和infrastructure四个一级代码目录。