极客时间-DDD 实战课

课程介绍

极客时间-DDD 实战课视频教程,经百课优(baikeu.com)精心整理发布。此课程将详细研究领域驱动设计(DDD)的主要概念和设计原则,并指导学员熟练掌握一个完整而系统的基于DDD的微服务划分和设计方法。我们将清晰地明确从战略设计到战术设计的微服务标准化设计过程,有助于您实现边界清晰、可持续演进的微服务架构。

领域驱动设计(Domain-Driven Design,简称DDD)是一种用于软件开发的设计方法论,旨在帮助开发者更好地应对复杂领域问题。在DDD中,领域指的是软件系统所要解决的问题领域,通过将业务规则和领域模型作为核心,将代码与业务紧密关联,使得软件开发更加灵活、可维护和易扩展。本文将介绍DDD的核心概念和关键步骤,以及其对软件开发的影响。

DDD的核心概念包括:

领域模型(Domain Model):领域模型是对业务问题领域的抽象和表达,它由领域实体、领域值对象、领域服务和领域事件等组成。领域模型是软件开发过程中的核心,它将业务规则、实体关系和业务流程等元素结合在一起。
限界上下文(Bounded Context):限界上下文定义了领域模型的边界和职责范围。在大型系统或多模块应用中,不同的模块可能涉及不同的业务领域,每个模块可以拥有自己的限界上下文,以避免混淆和复杂性。
领域驱动设计战略(DDD Strategic Design):战略设计关注业务范围和整体架构的规划。它包括划分限界上下文、定义通用语言和上下文映射关系,以及管理领域模型和限界上下文之间的关系。
领域驱动设计战术(DDD Tactical Design):战术设计关注领域模型的实现和交互细节。它包括实体的设计、值对象、聚合根、领域服务和领域事件等概念的应用,以及设计模式和架构原则的使用。
基于上述概念,DDD的关键步骤如下:

理解业务:通过与领域专家紧密合作,全面理解业务问题领域和务规则。这需要对业务领域进行建模,抽取核心业务概念和业务流程。
划分限界上下文:根据业务范围和业务程,划分出不的限界上下文。每个限界上下文都有自己独特的领域模型和业务规则。
定义通用语:在整个团队中建立共享的通用语言,确保开发者和领域专家可以进行有效的沟通和理解。通用语言是领域模型的核心,它规定了各个概念的命名和定义。
设计领域模型:基于通用言和业务需求,设计领域模型。将业务规则和业务流程转化为领域实体、值对象、聚合根等模型元素,并规定它们之间的关系。
实现领域模型:根据领域模型的设计,实现领域模型的代码。在实现过程中,需要使用适当的设计模式和架构原则,使得代码结构清晰、易于理解和扩展。
DDD对软件开发的影响体现在以下几个方面:

业务导向:DDD的核心理念将业务规则放在首位,通过领域模型表达业务逻辑。这使得开发者能够更好地理解业务需求,并将其直接映射到软件实现中。
可维护性:通过将业务逻辑集中在领域模型中,使得代码的可维护性得到提升。对于业务规则的更改,只需要对领域模型进行修改,而不需要修改整个系统的代码。
易扩展性:将系统划分为不同的限界上下文,并通过松耦合的上下文映射关系进行协作,使得系统更易于扩展和演化。每个限界上下文都可以独立开发和部署。
实现复杂问题:DDD提供了一套针对复杂业务问题的解决方案。通过抽象业务概念、聚合根和领域服务,以及明确的边界和通用语言,DDD帮助开发者更好地理解和解决复杂问题。
综上所述,领域驱动设计是一种以业务为中心的软件设计方法论,通过引入领域模型和限界上下文的概念,将业务规则和代码紧密结合。它提供了一种有效的方式来应对复杂领域问题,提高软件开发可维护性和扩展性。

你将获得:
DDD 必知必会 10 大核心概念
掌握事件风暴与领域建模
上手中台业务建模与设计
实战设计清晰的微服务架构

资源目录

├── [ 13M] 01-领域驱动设计:微服务设计为什么要选择DDD?.mp3
├── [3.6M] 01-领域驱动设计:微服务设计为什么要选择DDD?.pdf
├── [ 10M] 02-领域、子域、核心域、通用域和支撑域:傻傻分不清?.mp3
├── [4.0M] 02-领域、子域、核心域、通用域和支撑域:傻傻分不清?.pdf
├── [ 13M] 03-限界上下文:定义领域边界的利器.mp3
├── [3.9M] 03-限界上下文:定义领域边界的利器.pdf
├── [ 13M] 04-实体和值对象:从领域模型的基础单元看系统设计.mp3
├── [3.7M] 04-实体和值对象:从领域模型的基础单元看系统设计.pdf
├── [ 11M] 05-聚合和聚合根:怎样设计聚合?.mp3
├── [2.6M] 05-聚合和聚合根:怎样设计聚合?.pdf
├── [ 14M] 06-领域事件:解耦微服务的关键.mp3
├── [4.3M] 06-领域事件:解耦微服务的关键.pdf
├── [ 12M] 07-DDD分层架构:有效降低层与层之间的依赖.mp3
├── [3.0M] 07-DDD分层架构:有效降低层与层之间的依赖.pdf
├── [ 11M] 08-微服务架构模型:几种常见模型的对比和分析.mp3
├── [2.0M] 08-微服务架构模型:几种常见模型的对比和分析.pdf
├── [ 13M] 09-中台:数字转型后到底应该共享什么?.mp3
├── [2.9M] 09-中台:数字转型后到底应该共享什么?.pdf
├── [10.0M] 10-DDD、中台和微服务:它们是如何协作的?.mp3
├── [2.4M] 10-DDD、中台和微服务:它们是如何协作的?.pdf
├── [ 13M] 11-DDD实践:如何用DDD重构中台业务模型?.mp3
├── [5.7M] 11-DDD实践:如何用DDD重构中台业务模型?.pdf
├── [ 11M] 12-领域建模:如何用事件风暴构建领域模型?.mp3
├── [4.3M] 12-领域建模:如何用事件风暴构建领域模型?.pdf
├── [ 10M] 13-代码模型(上):如何使用DDD设计微服务代码模型?.mp3
├── [2.9M] 13-代码模型(上):如何使用DDD设计微服务代码模型?.pdf
├── [ 13M] 14-代码模型(下):如何保证领域模型与代码模型的一致性?.mp3
├── [2.2M] 14-代码模型(下):如何保证领域模型与代码模型的一致性?.pdf
├── [7.9M] 15-边界:微服务的各种边界在架构演进中的作用?.mp3
├── [3.0M] 15-边界:微服务的各种边界在架构演进中的作用?.pdf
├── [ 12M] 16-视图:如何实现服务和数据在微服务各层的协作?.mp3
├── [4.2M] 16-视图:如何实现服务和数据在微服务各层的协作?.pdf
├── [ 15M] 17-从后端到前端:微服务后,前端如何设计?.mp3
├── [4.3M] 17-从后端到前端:微服务后,前端如何设计?.pdf
├── [ 15M] 18-知识点串讲:基于DDD的微服务设计实例.mp3
├── [8.3M] 18-知识点串讲:基于DDD的微服务设计实例.pdf
├── [ 13K] 19-总结(一):微服务设计和拆分要坚持哪些原则?.md
├── [ 13M] 19-总结(一):微服务设计和拆分要坚持哪些原则?.mp3
├── [2.1M] 19-总结(一):微服务设计和拆分要坚持哪些原则?.pdf
├── [ 14K] 20-总结(二):分布式架构关键设计10问.md
├── [ 13M] 20-总结(二):分布式架构关键设计10问.mp3
├── [2.2M] 20-总结(二):分布式架构关键设计10问.pdf
├── [ 24M] 基于DDD的微服务设计实例代码详解.mp3
├── [4.5M] 基于DDD的微服务设计实例代码详解.pdf
├── [9.4M] 开篇词-学好了DDD,你能做什么?.mp3
├── [3.3M] 开篇词-学好了DDD,你能做什么?.pdf
├── [8.6M] 抽奖|《DDD实战课》沉淀成书了,感谢有你!.mp3
├── [3.3M] 抽奖|《DDD实战课》沉淀成书了,感谢有你!.pdf
├── [850K] 期末测试-有关DDD的内容,你掌握了多少呢?.pdf
├── [8.2K] 答疑:有关3个典型问题的讲解.md
├── [7.6M] 答疑:有关3个典型问题的讲解.mp3
├── [2.2M] 答疑:有关3个典型问题的讲解.pdf
├── [5.7M] 结束语-所谓高手,就是跨过坑和大海!.mp3
└── [1.5M] 结束语-所谓高手,就是跨过坑和大海!.pdf

发表回复

登录... 后才能评论