DDD领域驱动设计课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《DDD领域驱动设计课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DDD 领域 驱动 设计 课件
- 资源描述:
-
1、DDD领域驱动设计演讲人2025-11-1101PART ONE通 用 语 言 U b i q u i t o u s L a n g u a g e通用语言Ubiquitous Language概念通过团队交流、达成共识的、能够准确传递业务规则的、简单:语言通用语言Ubiquitous Language特点通用,简洁、“无歧义”价值解决了交流障碍问题,使领域专家和开发人员协同合作同名的业务词汇与实际业务关系不清同名的业务词汇与不同的业务词汇关联同名的业务词汇之间的关系不清楚02PART ONE领域模型Domain Model领域模型Domain Model概念 把通用语言表达成软件模型特点
2、综合了系统分析和设计语言、模型、代码三者紧密绑定可以通过UML类图来展示03PART ONE领 域 D o m a i n领域Domain领域与具体开发技术无关,就是你的软件系统要解决的实际问题相关的所有东西的集合本质1 问题空间:业务所面临的问题和挑战3解决方案空间:如何实现软件以解决这些业务挑战 204PART ONE子 域 S u b D o m a i n包含支撑子域 0201核心域Core Domain业务系统核心价值所在03通用子域 例子电商网站核心域:销售子域通用子域:日志子域支撑子域:除了销售子域之外的子域,如物流子域05PART ONE限 界 上 下 文 B o u n d
3、e d C o n t e x t限界上下文Bounded Context例子梳理关系概念本质与技术组件保持一致(保持一致的模型认识)如何划分020304050601限界上下文Bounded Context概念上下文限界限界一个界限,某个具体的范围领域模型的边界概念上下文语境限界上下文Bounded Context本质保证模型概念的清晰和无歧义,避免具有多重含义和职责的模型本质保证模型概念的清晰和无歧义,避免具有多重含义和职责的模型例子u商品限界上下文Bounded Context例子商品在采购上下文中 - 补货商品01在售后上下文中 - 售后商品02限界上下文Bounded Context如
4、何划分语言二义性变化一致性业务相关性概念相关性如何划分01语言二义性变化一致性02业务相关性03概念相关性04限界上下文Bounded Context与技术组件保持一致(保持一致的模型认识)一个团队01一个IDEA工程02一个部署单元03与技术组件保持一致(保持一致的模型认识)一个团队01一个IDEA工程02一个部署单元03限界上下文Bounded Context梳理关系01上下文映射图Context Map02上下文依赖梳理关系上下文映射图Context Map 描述不同Context下模型的联系点上下文依赖06PART ONE应 用 服 务 A p p l i c a t i o n S
5、e r v i c e应用服务Application Service表述应用行为 eg.购物车结算=>应用行为隐藏领域层的复杂性及其内部实现07PART ONE领 域 服 务 D o m a i n S e r v i c e领域服务Domain Service表述领域行为eg.金额计算、支付、生成订单=>领域行为08PART ONE聚 合 A g g r e g a t e来源UML类图概念,整体与部分的关系eg.车和轮胎=>可以独立存在DDD中的概念领域对象的显示分组封装业务保证聚合内领域对象的数据一致性关键领域不变性 领域内需要关注的业务规则领域对象间的关联关系 基于业
6、务用例而非现实生活建立必要关联减少不必要的关联将双向关联转换为单项关联难点一致性的维护聚合内实现事务一致性聚合外实现最终一致性设计一个持续性的活动无法一口吃个胖子持续改进聚合的设计09PART ONE实体Entity实体Entity概念特征实体Entity概念实体=唯一身份标识 + 可变性【状态(属性) + 行为(方法或领域事件或领域服务)】实体Entity特征可变性唯一标识唯一标识委派标识为了迎合ORM而创建,和领域实体标识无关系领域标识基于领域实体概念分析确定的唯一身份标识eg.支付宝交易流水号唯一标识生成时机即时生成01延迟生成02可变性实体的行为 eg.订单行为:支付、发货、关闭实体的
7、状态 eg.订单状态:未支付、正常、已发货、关闭10PART ONE值对象Value-Object概念u值对象=值+对象 => 将一个值用对象的方式进行表述,表达一个具体的固定不变的概念值对象Value-Object值对象Value-Object值的特征表示一个具体的概念1通过值的属性对其识别2属性判等3固定不变4值对象Value-Object案例购物网站的客户收货地址信息作用符合通用语言,更简单明了的表达简单业务概念简化设计,减少不必要的数据库表设计 值对象不会孤立存在,可作为所属实体的数据列多个值对象序可以列化到单个列值对象Value-Object建模结合通用语言的表述检查其是否具有
展开阅读全文