DDD(领域驱动设计),在软件工程里属于软件开发方法学的范畴。它继承了面向对象和敏捷方法的精华,并提炼了一套更容易掌握的原则、模式和实践,特别适合复杂的企业应用的开发。
DDD 在开发微服务,遗留系统改造、架构治理、企业架构、研发效能提升、架构师培养等很多方面,都有用武之地。然而,DDD 想要学习和落地并不容易,主要有以下难点:
领域模建模不好掌握;
领域模型不好实现;
概念混乱,资料良莠不齐;
技术环境还是开发理念,随时代有所变化;
有很多具体落地时才会遇到的问题。
本课程以案例为导向,模拟了敏捷软件开发过程,老师将结合一个企业管理系统案例,带你体验这该系统的三个迭代。每个迭代的需求规模逐渐扩大,复杂性也逐渐增加,相应也会让你不断深化与之对应的 DDD 模式和实践。
迭代一:打通 DDD 的最小闭环
迭代一主要会带你夯实基础,实现一个“麻雀虽小、五脏俱全”的项目。打通从需求分析,到领域建模,再到架构设计,最后到数据库和代码实现的完整闭环。学完这个迭代,你就有能力处理一些不太复杂的项目了。
迭代二:聚合、值对象和泛化
迭代二会深入讲解 DDD 里争议较大,不太好掌握的内容,包括聚合、值对象等等。同时,还会进一步带你提升领域建模能力,深化对分层架构和代码封装的理解。最后,还会学习重要的建模技巧——泛化,这是领域建模由初级走向中、高级的关键技能。学完这个部分,你会有渐入佳境的感觉。
迭代三:进阶建模、架构和落地技能
迭代三会重点讲解 “限界上下文”、事件驱动和 CQRS 等模式,也你深入讨论怎样为更加灵活多变的业务建模,帮你深化对泛化的理解。还会讲到实践落地的关键要点,比如 DDD 切入点的选择,遗留系统的改造等等。学完这个部分,你将掌握更高阶的 DDD 技能,了解如何应对更大范围的项目。
课程目录
01|DDD小传:领域驱动设计为什么这么火?.md
01|DDD小传:领域驱动设计为什么这么火?.mp3
01|DDD小传:领域驱动设计为什么这么火?.pdf
02|迭代一概述:怎样开启一个麻雀虽小五脏俱全的项目?.md
02|迭代一概述:怎样开启一个麻雀虽小五脏俱全的项目?.mp3
02|迭代一概述:怎样开启一个麻雀虽小五脏俱全的项目?.pdf
03|事件风暴(上):怎样和业务愉快地聊需求?.md
03|事件风暴(上):怎样和业务愉快地聊需求?.mp3
03|事件风暴(上):怎样和业务愉快地聊需求?.pdf
04|事件风暴(下):事件风暴还有哪些诀窍?.md
04|事件风暴(下):事件风暴还有哪些诀窍?.mp3
04|事件风暴(下):事件风暴还有哪些诀窍?.pdf
05|领域建模实践(上):怎样既准确又深刻地理解业务知识?.md
05|领域建模实践(上):怎样既准确又深刻地理解业务知识?.mp3
05|领域建模实践(上):怎样既准确又深刻地理解业务知识?.pdf
06|领域建模实践(下):领域建模还有什么其他技巧?.md
06|领域建模实践(下):领域建模还有什么其他技巧?.mp3
06|领域建模实践(下):领域建模还有什么其他技巧?.pdf
07|领域建模原理:DDD领域建模和传统方法有什么区别?.md
07|领域建模原理:DDD领域建模和传统方法有什么区别?.mp3
07|领域建模原理:DDD领域建模和传统方法有什么区别?.pdf
08|数据库设计:怎样按领域模型设计数据库?.md
08|数据库设计:怎样按领域模型设计数据库?.mp3
08|数据库设计:怎样按领域模型设计数据库?.pdf
09|分层架构:怎样逃离“大泥球”?.md
09|分层架构:怎样逃离“大泥球”?.mp3
09|分层架构:怎样逃离“大泥球”?.pdf
10|代码实现(上):要“贫血”还是要“充血”?.md
10|代码实现(上):要“贫血”还是要“充血”?.mp3
10|代码实现(上):要“贫血”还是要“充血”?.pdf
11|代码实现(中):怎样创建领域对象、实现领域逻辑?.md
11|代码实现(中):怎样创建领域对象、实现领域逻辑?.mp3
11|代码实现(中):怎样创建领域对象、实现领域逻辑?.pdf
12|代码实现(下):怎样更加“面向对象”?.md
12|代码实现(下):怎样更加“面向对象”?.mp3
12|代码实现(下):怎样更加“面向对象”?.pdf
13|迭代二概述:怎样更深刻地理解领域知识?.md
13|迭代二概述:怎样更深刻地理解领域知识?.mp3
13|迭代二概述:怎样更深刻地理解领域知识?.pdf
14|聚合的概念:怎样保护业务规则?.md
14|聚合的概念:怎样保护业务规则?.mp3
14|聚合的概念:怎样保护业务规则?.pdf
15|聚合的实现(上):怎样对聚合进行封装?.md
15|聚合的实现(上):怎样对聚合进行封装?.mp3
15|聚合的实现(上):怎样对聚合进行封装?.pdf
16|聚合的实现(中):怎样实现不变规则?.md
16|聚合的实现(中):怎样实现不变规则?.mp3
16|聚合的实现(中):怎样实现不变规则?.pdf
17|聚合的实现(下):怎样用事务保护聚合?.md
17|聚合的实现(下):怎样用事务保护聚合?.mp3
17|聚合的实现(下):怎样用事务保护聚合?.pdf
18|值对象(上):到底什么是值对象?.md
18|值对象(上):到底什么是值对象?.mp3
18|值对象(上):到底什么是值对象?.pdf
19|值对象(中):值对象有什么好处?.md
19|值对象(中):值对象有什么好处?.mp3
19|值对象(中):值对象有什么好处?.pdf
20|值对象(下):值对象和实体的本质区别是什么?.md
20|值对象(下):值对象和实体的本质区别是什么?.mp3
20|值对象(下):值对象和实体的本质区别是什么?.pdf
21|用“限定”建模:怎样简化一对多关联?.md
21|用“限定”建模:怎样简化一对多关联?.mp3
21|用“限定”建模:怎样简化一对多关联?.pdf
22|泛化建模(上):领域知识更抽象怎么办?.md
22|泛化建模(上):领域知识更抽象怎么办?.mp3
22|泛化建模(上):领域知识更抽象怎么办?.pdf
23|泛化建模(中):可以不用泛化吗?.md
23|泛化建模(中):可以不用泛化吗?.mp3
23|泛化建模(中):可以不用泛化吗?.pdf
24|泛化建模(下):怎样权衡是否采用泛化?.md
24|泛化建模(下):怎样权衡是否采用泛化?.mp3
24|泛化建模(下):怎样权衡是否采用泛化?.pdf
25|泛化的实现(上):怎样为泛化设计数据库?.md
25|泛化的实现(上):怎样为泛化设计数据库?.mp3
25|泛化的实现(上):怎样为泛化设计数据库?.pdf
26|泛化的实现(下):怎样为泛化编写代码?.md
26|泛化的实现(下):怎样为泛化编写代码?.mp3
26|泛化的实现(下):怎样为泛化编写代码?.pdf
27|迭代三概述:怎样处理规模更大的系统?.md
27|迭代三概述:怎样处理规模更大的系统?.mp3
27|迭代三概述:怎样处理规模更大的系统?.pdf
28|限界上下文(上):怎样为更大的需求建模?.md
28|限界上下文(上):怎样为更大的需求建模?.mp3
28|限界上下文(上):怎样为更大的需求建模?.pdf
29|限界上下文(中):限界上下文怎样影响架构设计?.md
29|限界上下文(中):限界上下文怎样影响架构设计?.mp3
29|限界上下文(中):限界上下文怎样影响架构设计?.pdf
30|限界上下文(下):限界上下文之间如何集成?.md
30|限界上下文(下):限界上下文之间如何集成?.mp3
30|限界上下文(下):限界上下文之间如何集成?.pdf
31|CQRS(上):实现查询功能有什么诀窍?.md
31|CQRS(上):实现查询功能有什么诀窍?.mp3
31|CQRS(上):实现查询功能有什么诀窍?.pdf
32|CQRS(下):CQRS还有哪些变化?.md
32|CQRS(下):CQRS还有哪些变化?.mp3
32|CQRS(下):CQRS还有哪些变化?.pdf
33|分析模式初探:怎样解决更复杂的问题?.md
33|分析模式初探:怎样解决更复杂的问题?.mp3
33|分析模式初探:怎样解决更复杂的问题?.pdf
34|落地经验:怎样在实际项目中推广DDD?.md
34|落地经验:怎样在实际项目中推广DDD?.mp3
34|落地经验:怎样在实际项目中推广DDD?.pdf
春节策划第1期|小试牛刀,测测你对DDD的掌握情况.md
春节策划第1期|小试牛刀,测测你对DDD的掌握情况.mp3
春节策划第1期|小试牛刀,测测你对DDD的掌握情况.pdf
春节策划第2期|读这些书,帮你学懂DDD.md
春节策划第2期|读这些书,帮你学懂DDD.mp3
春节策划第2期|读这些书,帮你学懂DDD.pdf
春节策划第3期|这些书里,藏着高手们的“不传之秘”.md
春节策划第3期|这些书里,藏着高手们的“不传之秘”.mp3
春节策划第3期|这些书里,藏着高手们的“不传之秘”.pdf
结束语|DDD,是技术也是艺术.md
结束语|DDD,是技术也是艺术.mp3
结束语|DDD,是技术也是艺术.pdf
开篇词|带你吃透DDD.md
开篇词|带你吃透DDD.mp3
开篇词|带你吃透DDD.pdf
期末测试|来赴一场满分之约!.md
期末测试|来赴一场满分之约!.pdf
特别加餐2|DDD很难,学不会怎么办?.md
特别加餐2|DDD很难,学不会怎么办?.mp3
特别加餐2|DDD很难,学不会怎么办?.pdf
特别加餐|建模作业点评直播回放&获奖公示.md
特别加餐|建模作业点评直播回放&获奖公示.mp3
特别加餐|建模作业点评直播回放&获奖公示.pdf
暂无评论内容