# DDD **Repository Path**: whonfeng/ddd ## Basic Information - **Project Name**: DDD - **Description**: 在《DDD实战课》专栏第18节中我们用事件风暴完成了“在线请假考勤”项目的领域建模和微服务设计。 我们一起从程序员的视角去看看用DDD方法设计和开发出来的微服务代码到底是什么样的? - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-09-03 - **Last Updated**: 2025-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # leave-sample 《DDD实战课》在百度网盘有资源 通过网盘分享的文件:94-DDD实战课 链接: https://pan.baidu.com/s/1NasyF4JFTWbfNVQgGUAW-w?pwd=aphw 提取码: aphw 一、说明 本代码源于极客时间《DDD实战课》,DDD知识体系和代码详解可参考专栏。 在《DDD实战课》专栏第18节中我们用事件风暴完成了“在线请假考勤”项目的领域建模和微服务设计。 我们一起从程序员的视角去看看用DDD方法设计和开发出来的微服务代码到底是什么样的? 二、项目回顾 “在线请假考勤”项目中,请假的核心业务流程是:“请假人填写请假单提交审批。根据请假人身份、请假类型和请假天数进行校验并确定审批规则。根据审批规则确定审批人,逐级提交上级审批,逐级核批通过则完成审批,否则审批不通过则退回申请人。” 在第18节的DDD领域建模和微服务设计中,我们已经拆分出了两个微服务:请假和考勤微服务。 本部分是请假微服务的示例代码,采用的开发语言和数据库分别是:Java、Spring boot和PostgreSQL。 三、请假微服务采用的DDD设计思想 请假微服务中用到了很多DDD设计思想和方法,主要包括以下几点。 1.聚合的管理:聚合根、实体和值对象的关系。 2.聚合数据的初始化和持久化:工厂和仓储模式。 3.聚合的解耦:聚合代码的解耦、跨聚合的服务调用和对象解耦。 4.领域事件管理:领域事件实体结构、持久化和事件发布。 5.DDD分层架构:基础层、领域层、应用层和用户接口层的协作。 6.服务的分层与协作:实体方法、领域服务、应用服务、接口服务,服务的组合和编排,跨多个聚合的服务管理和协同。 7.对象的分层和转换:DTO、DO和PO等对象在不同层的转换和实现过程。 8.微服务之间的访问:登录和认证服务。 # 参考文章 # DDD系列 [【DDD】全网最详细2万字讲解DDD,从理论到实战(代码示例)_ddd代码实例-CSDN博客](https://blog.csdn.net/bookssea/article/details/127248954) ## DDD系列第一讲:阿里技术专家详解 DDD 系列- Domain Primitive https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&chksm=83953c2cb4e2b53a6af3b5a82c3b7d7ed932bfe83f59877a935445ae89edd0ff4ee1c4e82fba&idx=1&mid=2650403892&scene=21&sn=a91fa477392e80f9420a8ca4d26bcace#wechat_redirect ## DDD系列第二讲:阿里技术专家详解DDD系列 第二弹 - 应用架构 https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&chksm=83953cc4b4e2b5d2bd4426e0d2103f2e95715b682f3b7ff333dbb123eaa79d3e5ad24f64beac&idx=1&mid=2650404060&scene=21&sn=cacf40d19528f6c2d9fd165151d6e8b4#wechat_redirect ## DDD系列第三讲:阿里技术专家详解DDD系列 第三讲 - Repository模式 https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&chksm=8395373cb4e2be2a2d066a5ea4e631fd6270e969ce61883b488f61c1ce33fbc0b362ec9cbf7b&idx=1&mid=2650406692&scene=21&sn=4a4ac4168299d8ca1905a4f457ae4c59#wechat_redirect ## DDD系列第四讲:领域层设计规范 https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&chksm=8396d75fb4e15e49341b07022780dcb8dca66a0efb7f129d4de86a5ef5d8a890f6e0d2fd6432&idx=1&mid=2650414919&scene=21&sn=0ad1df1a1b0e2488f7faa21008fdbdd0#wechat_redirect ## DDD系列第五讲:聊聊如何避免写流水账代码 [DDD系列第五讲:聊聊如何避免写流水账代码-CSDN博客](https://blog.csdn.net/Taobaojishu/article/details/115911833?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166539444916782390572525%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166539444916782390572525&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-115911833-null-null.142%5Ev52%5Epc_rank_34_2,201%5Ev3%5Econtrol_2&utm_term=DDD&spm=1018.2226.3001.4187) ## 2.5万字讲解DDD领域驱动设计,从理论到实践掌握DDD分层架构设计,赶紧收藏起来吧 [2.5万字讲解DDD领域驱动设计,从理论到实践掌握DDD分层架构设计,赶紧收藏起来吧-CSDN博客](https://blog.csdn.net/qq_41889508/article/details/124907312?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166539444916782390572525%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166539444916782390572525&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-4-124907312-null-null.142%5Ev52%5Epc_rank_34_2,201%5Ev3%5Econtrol_2&utm_term=DDD&spm=1018.2226.3001.4187) # InfoQ ## 当中台遇上 DDD,我们该如何设计微服务? https://www.infoq.cn/article/7QgXyp4Jh3-5Pk6LydWw ## 基于 DDD 的微服务设计和开发实战 https://www.infoq.cn/article/s_LFUlU6ZQODd030RbH9