# ddd **Repository Path**: xwq1969308600/ddd ## Basic Information - **Project Name**: ddd - **Description**: 一个抄袭的ddd实战项目 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2024-12-30 - **Last Updated**: 2025-09-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DDD电商消息系统编码实践 > 通过介绍DDD的基本概念,贫血充血模型开始,到以一个电商消息系统DDD案例,向你展示一个DDD项目开发的过程,它是一个案例也是一系列的DDD学习文章,希望对你有帮助。 > PS:每个章节会有一个tag与其对应,这样可以看到项目的代码的变化过程,便于理解,请点击版本库tag查阅。 ## 系列文章 #### [DDD概览](https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E6%A6%82%E8%A7%88.md) #### [DDD推荐的架构模式]( https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E6%8E%A8%E8%8D%90%E7%9A%84%E6%9E%B6%E6%9E%84%E6%A8%A1%E5%BC%8F.md) #### [DDD充血模型编码实践]( https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E5%85%85%E8%A1%80%E6%A8%A1%E5%9E%8B%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5.md) #### [DDD电商消息系统编码实践(一)](https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E7%94%B5%E5%95%86%E6%B6%88%E6%81%AF%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5%E4%B8%80.md) #### [DDD电商消息系统编码实践(二)](https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E7%94%B5%E5%95%86%E6%B6%88%E6%81%AF%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5%E4%BA%8C.md) #### [DDD电商消息系统编码实践(三)](https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E7%94%B5%E5%95%86%E6%B6%88%E6%81%AF%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5%E4%B8%89.md) #### [DDD电商消息系统编码实践(四)](https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E7%94%B5%E5%95%86%E6%B6%88%E6%81%AF%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5%E5%9B%9B.md) #### [DDD电商消息系统编码实践(五)](https://gitee.com/izhengyin/ddd-message/blob/master/blog/DDD%E7%94%B5%E5%95%86%E6%B6%88%E6%81%AF%E7%B3%BB%E7%BB%9F%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5%E4%BA%94.md) ## 补充更改日志 > 直接按照 tag 检出代码,不会有下面的改动 1. 接口层 command包,从应用层迁移至接口层 2. DDD电商消息系统编码实践(二) 补充了规约模式的使用 3. 补充DDD概览介绍 ## 10月23日,开源悦读会第五期,DDD编码实践分享 [DDD编码实践PPT](https://gitee.com/izhengyin/ddd-message/blob/master/DDD%E7%BC%96%E7%A0%81%E5%AE%9E%E8%B7%B5.pdf) > start / watch 接收更新通知 ~ interface接口层提供给用户的 1.controller接口 2.dto数据传输 3.vo响应实体 4.Validator--ui用于数据校验(数据长度,非空,时间格式等) | | application 应用层主要包括以下内容: 0.Validator——db入参校验(数据库层次的校验) 1.对象转换convert(dto转Entity。bo转vo) 2.领域事件event( 用于存放本应用服务调用其他聚合的领域服务或其他微服务所暴露的事件接口,主要解决领域交叉业务问题) 3.command(用于完成服务的编排、组合,完成业务逻辑编排任务,这里也是用于交叉业务问题处理的,这里允许调用多个domain) 4.bo装载实体 | | | | | | domain领域业务核心内聚层,这一层的东西只要保证内聚即可 1.实体Entity(可实现自身行为) 2.值对象objectValue(无需唯一标识符的对象)。 3.service业务处理(只能处理内聚的业务,不允许跨域调用,要跨域去application层处理) 4.转换器convert {entity查dao转po、entity返回到application转bo) | | infrastructure基础层 1.为领域层 提供持久化机制(底层的实现) VO:(View Object)视图对象,一般位于Controller层,用于展示视图。 DTO:(Data Transfer Object)数据传输对象, 即RPC 接口请求或传输出去的对象,用于展示层与服务层之间的数据传输对象。 BO:(Business Object)业务层对象,一般位于Service层,它与 DO 会有一定的属性差别。 PO:(Persistent Object)持久化对象,对象属性与数据库字段形成映射关系。 DO:(Domain Object)领域对象,就是从现实世界中抽象出来的有形或无形的业务实体,可以当成BO;(Data Object)数据层对象,对象属性与数据库字段形成映射关系,可以当成PO