DDD(领域驱动设计),在软件工程里属于软件开发方法学的范畴。它继承了面向对象和敏捷方法的精华,并提炼了一套更容易掌握的原则、模式和实践,特别适合复杂的企业应用的开发。
DDD 在开发微服务,遗留系统改造、架构治理、企业架构、研发效能提升、架构师培养等很多方面,都有用武之地。然而,DDD 想要学习和落地并不容易,主要有以下难点:
领域模建模不好掌握;
领域模型不好实现;
概念混乱,资料良莠不齐;
技术环境还是开发理念,随时代有所变化;
有很多具体落地时才会遇到的问题。
本课程以案例为导向,模拟了敏捷软件开发过程,老师将结合一个企业管理系统案例,带你体验这该系统的三个迭代。每个迭代的需求规模逐渐扩大,复杂性也逐渐增加,相应也会让你不断深化与之对应的 DDD 模式和实践。
迭代一:打通 DDD 的最小闭环
迭代一主要会带你夯实基础,实现一个“麻雀虽小、五脏俱全”的项目。打通从需求分析,到领域建模,再到架构设计,最后到数据库和代码实现的完整闭环。学完这个迭代,你就有能力处理一些不太复杂的项目了。
迭代二:聚合、值对象和泛化
迭代二会深入讲解 DDD 里争议较大,不太好掌握的内容,包括聚合、值对象等等。同时,还会进一步带你提升领域建模能力,深化对分层架构和代码封装的理解。最后,还会学习重要的建模技巧——泛化,这是领域建模由初级走向中、高级的关键技能。学完这个部分,你会有渐入佳境的感觉。
迭代三:进阶建模、架构和落地技能
迭代三会重点讲解 “限界上下文”、事件驱动和 CQRS 等模式,也你深入讨论怎样为更加灵活多变的业务建模,帮你深化对泛化的理解。还会讲到实践落地的关键要点,比如 DDD 切入点的选择,遗留系统的改造等等。学完这个部分,你将掌握更高阶的 DDD 技能,了解如何应对更大范围的项目。
〖资源目录〗:
- ├──01|DDD小传:领域驱动设计为什么这么火?.md 14.20kb
- ├──01|DDD小传:领域驱动设计为什么这么火?.mp3 16.65M
- ├──01|DDD小传:领域驱动设计为什么这么火?.pdf 9.37M
- ├──02|迭代一概述:怎样开启一个麻雀虽小五脏俱全的项目?.md 11.86kb
- ├──02|迭代一概述:怎样开启一个麻雀虽小五脏俱全的项目?.mp3 13.56M
- ├──02|迭代一概述:怎样开启一个麻雀虽小五脏俱全的项目?.pdf 10.42M
- ├──03|事件风暴(上):怎样和业务愉快地聊需求?.md 15.33kb
- ├──03|事件风暴(上):怎样和业务愉快地聊需求?.mp3 15.65M
- ├──03|事件风暴(上):怎样和业务愉快地聊需求?.pdf 14.64M
- ├──04|事件风暴(下):事件风暴还有哪些诀窍?.md 16.01kb
- ├──04|事件风暴(下):事件风暴还有哪些诀窍?.mp3 16.25M
- ├──04|事件风暴(下):事件风暴还有哪些诀窍?.pdf 16.39M
- ├──05|领域建模实践(上):怎样既准确又深刻地理解业务知识?.md 17.68kb
- ├──05|领域建模实践(上):怎样既准确又深刻地理解业务知识?.mp3 17.75M
- ├──05|领域建模实践(上):怎样既准确又深刻地理解业务知识?.pdf 17.04M
- ├──06|领域建模实践(下):领域建模还有什么其他技巧?.md 13.95kb
- ├──06|领域建模实践(下):领域建模还有什么其他技巧?.mp3 13.39M
- ├──06|领域建模实践(下):领域建模还有什么其他技巧?.pdf 24.96M
- ├──07|领域建模原理:DDD领域建模和传统方法有什么区别?.md 13.90kb
- ├──07|领域建模原理:DDD领域建模和传统方法有什么区别?.mp3 14.66M
- ├──07|领域建模原理:DDD领域建模和传统方法有什么区别?.pdf 10.65M
- ├──08|数据库设计:怎样按领域模型设计数据库?.md 15.60kb
- ├──08|数据库设计:怎样按领域模型设计数据库?.mp3 15.79M
- ├──08|数据库设计:怎样按领域模型设计数据库?.pdf 18.14M
- ├──09|分层架构:怎样逃离“大泥球”?.md 15.07kb
- ├──09|分层架构:怎样逃离“大泥球”?.mp3 15.20M
- ├──09|分层架构:怎样逃离“大泥球”?.pdf 14.57M
- ├──10|代码实现(上):要“贫血”还是要“充血”?.md 19.31kb
- ├──10|代码实现(上):要“贫血”还是要“充血”?.mp3 16.08M
- ├──10|代码实现(上):要“贫血”还是要“充血”?.pdf 11.95M
- ├──11|代码实现(中):怎样创建领域对象、实现领域逻辑?.md 30.17kb
- ├──11|代码实现(中):怎样创建领域对象、实现领域逻辑?.mp3 14.52M
- ├──11|代码实现(中):怎样创建领域对象、实现领域逻辑?.pdf 10.76M
- ├──12|代码实现(下):怎样更加“面向对象”?.md 21.64kb
- ├──12|代码实现(下):怎样更加“面向对象”?.mp3 14.61M
- ├──12|代码实现(下):怎样更加“面向对象”?.pdf 9.85M
- ├──13|迭代二概述:怎样更深刻地理解领域知识?.md 12.53kb
- ├──13|迭代二概述:怎样更深刻地理解领域知识?.mp3 12.55M
- ├──13|迭代二概述:怎样更深刻地理解领域知识?.pdf 12.99M
- ├──14|聚合的概念:怎样保护业务规则?.md 13.47kb
- ├──14|聚合的概念:怎样保护业务规则?.mp3 13.50M
- ├──14|聚合的概念:怎样保护业务规则?.pdf 14.54M
- ├──15|聚合的实现(上):怎样对聚合进行封装?.md 19.66kb
- ├──15|聚合的实现(上):怎样对聚合进行封装?.mp3 14.06M
- ├──15|聚合的实现(上):怎样对聚合进行封装?.pdf 11.82M
- ├──16|聚合的实现(中):怎样实现不变规则?.md 19.81kb
- ├──16|聚合的实现(中):怎样实现不变规则?.mp3 11.56M
- ├──16|聚合的实现(中):怎样实现不变规则?.pdf 10.27M
- ├──17|聚合的实现(下):怎样用事务保护聚合?.md 30.90kb
- ├──17|聚合的实现(下):怎样用事务保护聚合?.mp3 13.46M
- ├──17|聚合的实现(下):怎样用事务保护聚合?.pdf 7.85M
- ├──18|值对象(上):到底什么是值对象?.md 19.86kb
- ├──18|值对象(上):到底什么是值对象?.mp3 15.20M
- ├──18|值对象(上):到底什么是值对象?.pdf 10.49M
- ├──19|值对象(中):值对象有什么好处?.md 15.02kb
- ├──19|值对象(中):值对象有什么好处?.mp3 13.78M
- ├──19|值对象(中):值对象有什么好处?.pdf 13.70M
- ├──20|值对象(下):值对象和实体的本质区别是什么?.md 16.22kb
- ├──20|值对象(下):值对象和实体的本质区别是什么?.mp3 14.99M
- ├──20|值对象(下):值对象和实体的本质区别是什么?.pdf 16.07M
- ├──21|用“限定”建模:怎样简化一对多关联?.md 13.14kb
- ├──21|用“限定”建模:怎样简化一对多关联?.mp3 9.88M
- ├──21|用“限定”建模:怎样简化一对多关联?.pdf 15.95M
- ├──22|泛化建模(上):领域知识更抽象怎么办?.md 13.00kb
- ├──22|泛化建模(上):领域知识更抽象怎么办?.mp3 11.93M
- ├──22|泛化建模(上):领域知识更抽象怎么办?.pdf 15.15M
- ├──23|泛化建模(中):可以不用泛化吗?.md 12.41kb
- ├──23|泛化建模(中):可以不用泛化吗?.mp3 11.43M
- ├──23|泛化建模(中):可以不用泛化吗?.pdf 15.15M
- ├──24|泛化建模(下):怎样权衡是否采用泛化?.md 17.14kb
- ├──24|泛化建模(下):怎样权衡是否采用泛化?.mp3 16.67M
- ├──24|泛化建模(下):怎样权衡是否采用泛化?.pdf 13.81M
- ├──25|泛化的实现(上):怎样为泛化设计数据库?.md 14.22kb
- ├──25|泛化的实现(上):怎样为泛化设计数据库?.mp3 28.59M
- ├──25|泛化的实现(上):怎样为泛化设计数据库?.pdf 13.66M
- ├──26|泛化的实现(下):怎样为泛化编写代码?.md 29.00kb
- ├──26|泛化的实现(下):怎样为泛化编写代码?.mp3 16.81M
- ├──26|泛化的实现(下):怎样为泛化编写代码?.pdf 9.59M
- ├──27|迭代三概述:怎样处理规模更大的系统?.md 12.38kb
- ├──27|迭代三概述:怎样处理规模更大的系统?.mp3 26.30M
- ├──27|迭代三概述:怎样处理规模更大的系统?.pdf 10.22M
- ├──28|限界上下文(上):怎样为更大的需求建模?.md 14.66kb
- ├──28|限界上下文(上):怎样为更大的需求建模?.mp3 15.56M
- ├──28|限界上下文(上):怎样为更大的需求建模?.pdf 13.87M
- ├──29|限界上下文(中):限界上下文怎样影响架构设计?.md 13.19kb
- ├──29|限界上下文(中):限界上下文怎样影响架构设计?.mp3 12.71M
- ├──29|限界上下文(中):限界上下文怎样影响架构设计?.pdf 17.30M
- ├──30|限界上下文(下):限界上下文之间如何集成?.md 15.51kb
- ├──30|限界上下文(下):限界上下文之间如何集成?.mp3 15.42M
- ├──30|限界上下文(下):限界上下文之间如何集成?.pdf 16.00M
- ├──31|CQRS(上):实现查询功能有什么诀窍?.md 13.59kb
- ├──31|CQRS(上):实现查询功能有什么诀窍?.mp3 13.89M
- ├──31|CQRS(上):实现查询功能有什么诀窍?.pdf 13.68M
- ├──32|CQRS(下):CQRS还有哪些变化?.md 7.86kb
- ├──32|CQRS(下):CQRS还有哪些变化?.mp3 7.65M
- ├──32|CQRS(下):CQRS还有哪些变化?.pdf 12.70M
- ├──33|分析模式初探:怎样解决更复杂的问题?.md 18.93kb
- ├──33|分析模式初探:怎样解决更复杂的问题?.mp3 17.89M
- ├──33|分析模式初探:怎样解决更复杂的问题?.pdf 23.24M
- ├──34|落地经验:怎样在实际项目中推广DDD?.md 16.62kb
- ├──34|落地经验:怎样在实际项目中推广DDD?.mp3 17.17M
- ├──34|落地经验:怎样在实际项目中推广DDD?.pdf 10.11M
- ├──春节策划第1期|小试牛刀,测测你对DDD的掌握情况.md 3.06kb
- ├──春节策划第1期|小试牛刀,测测你对DDD的掌握情况.mp3 2.80M
- ├──春节策划第1期|小试牛刀,测测你对DDD的掌握情况.pdf 8.34M
- ├──春节策划第2期|读这些书,帮你学懂DDD.md 13.76kb
- ├──春节策划第2期|读这些书,帮你学懂DDD.mp3 12.68M
- ├──春节策划第2期|读这些书,帮你学懂DDD.pdf 19.28M
- ├──春节策划第3期|这些书里,藏着高手们的“不传之秘”.md 9.63kb
- ├──春节策划第3期|这些书里,藏着高手们的“不传之秘”.mp3 9.68M
- ├──春节策划第3期|这些书里,藏着高手们的“不传之秘”.pdf 15.76M
- ├──结束语|DDD,是技术也是艺术.md 7.37kb
- ├──结束语|DDD,是技术也是艺术.mp3 8.29M
- ├──结束语|DDD,是技术也是艺术.pdf 10.90M
- ├──开篇词|带你吃透DDD.md 10.22kb
- ├──开篇词|带你吃透DDD.mp3 11.70M
- ├──开篇词|带你吃透DDD.pdf 9.67M
- ├──期末测试|来赴一场满分之约!.md 0.94kb
- ├──期末测试|来赴一场满分之约!.pdf 7.37M
- ├──特别加餐2|DDD很难,学不会怎么办?.md 11.63kb
- ├──特别加餐2|DDD很难,学不会怎么办?.mp3 12.06M
- ├──特别加餐2|DDD很难,学不会怎么办?.pdf 10.50M
- ├──特别加餐|建模作业点评直播回放&获奖公示.md 3.70kb
- ├──特别加餐|建模作业点评直播回放&获奖公示.mp3 1.99M
- └──特别加餐|建模作业点评直播回放&获奖公示.pdf 9.89M