- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DDD
DDD ENODE
作者:汤雪华
博客:/netfocus
内容提要
? DDD理论
? DDD案例分析
? ENode框架简介
? ENode – Conference案例简介
DDD – 什么是DDD
? 领域驱动设计(Domain-driven Design )
? 一种模型驱动的软件设计方式
DDD相关领导人物
DDD – 核心概念
? 领域划分
? 统一语言
? 领域模型
? 界定上下文(Bounded Context)
DDD – 领域划分、统一语言
DDD – Bounded Context
DDD – Bounded Context
DDD – 领域模型基本构造块
? 实体(Entity)
? 值对象(Value Object )
? 服务(Service )
? 聚合(Aggregate )
? 聚合根(Aggregate Root )
? 仓储(Repository)
? 工厂(Factory)
? 领域事件(Domain Event)
DDD – 构造块关系图
DDD – 领域模型
DDD – 隔离领域
DDD – 用户与系统的关系
DDD - 领域建模时分析问题的角度
? 以用户为中心!= 以用户的需求为中心
? 领域模型是主观的,是人们对领域知识、需求
分析后的产物,目的是容纳需求,解决领域内
的问题;比喻:只有空杯子才能装水
? 理解:用户、账号、角色的差别
DDD – 聚合设计原则
? 聚合!= 大对象,相反聚合应尽量设计的小
? 聚合是用来封装真正的不变性,而不是简单的
将对象组合在一起
? 聚合之间的关联通过ID,而不是对象引用
? 聚合内强一致性,聚合之间最终一致性
? 信息专家模式:将职责分配给拥有执行该职
责所需信息的对象
DDD – 聚合之间ID 引用例子
DDD - 领域建模步骤参考
? 先从需求中考虑一些业务场景,和领域专家交谈场景的过程,从中识别出一些明显的
领域概念,以及它们的关联,关联可以暂时没有方向但需要有(1:1,1:N,M:N)
这些关系;可以用文字精确的没有歧义的描述出每个领域概念的涵义以及包含的主要
信息;
? 根据上面分析得到的领域概念建立一个初步的领域模型
? 分析主要的软件应用程序功能,识别出主要的应用层的类;这样有助于及早发现哪些
是应用层的职责,哪些是领域层的职责;
? 进一步分析领域模型,识别出哪些是实体,哪些是值对象,哪些是领域服务;
? 分析关联,通过对业务的更深入分析以及各种软件设计原则及性能方面的权衡,明确
关联的方向或者去掉一些不需要的关联;
? 找出聚合边界及聚合根,这是一件很有难度的事情;因为你在分析的过程中往往会碰
到很多模棱两可的难以清晰判断的选择问题,所以,需要我们平时一些分析经验的积
累才能找出正确的聚合根;
? 为聚合根分配仓储,为每个聚合分配一个仓储,此时只要设计好仓储的接口即可;
? 走查场景,确定我们设计的领域模型能够有效地解决业务需求;
? 考虑如何创建领域实体或值对象,是通过工厂还是直接通过构造函数;
? 停下来重构模型。寻找模型中觉得有些疑问或者是蹩脚的地方,比如思考一些对象应
该通过关联导航得到还是应该从仓储获取?聚合设计的是否正确?考虑模型的性能怎
样,等等;
DDD案例– 图书借还场景
DDD案例– 图书借还场景
DDD案例– 图书借还场景
DDD案例– 借书场景领域概念
DDD案例– 借书场景领域模型
DDD案例– 订单模型
DDD案例– 订单模型
DDD案例– 论坛模型
DDD案例– 校招系统领域模型
DDD - POS机系统领域模型
DDD案例– 项目计划管理
ENODE – 简介
? ENode是一个用于开发DDD+CQRS+ES+EDA
架构风格的应用开发框架
? 领域模型常驻内存,(in-memory)
? 分布式、高性能、幂等支持、可扩展
? 架构层面尽量消除并发
? 面向最终一致性
ENODE – 架构
ENODE – Command处理流程
ENODE – Conference案例
Thanks!
您可能关注的文档
- SLAMWARE.pdf
- 规模化养猪场沼气工程成本效益典型案例研究.PDF
- 2016'科研数据管理与知识挖掘研修班.PDF
- PMDA实施的GMP符合性调查事例.PDF
- 有色金属套期保值案例分析.pdf-有色金属套期保值方案.PDF
- Hive案例演示.PDF
- 百会文件.PDF
- SPAJ141C通用过流及接地保护继电器.pdf
- 2016年规划工作要点.PDF
- 《问题驱动的软件测试设计》课程大纲.PDF
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
最近下载
- 宏观经济学计算题大全.doc VIP
- 苏教版数学四年级上册第八单元认识射线、直线和角(课件).pptx
- 某市棚户区改造中区市政道路建设工程路面天然砂砾垫层施工方案.doc
- 淀粉制品公司风险分级管控与隐患排查治理双体系双控手册2022-2024.doc
- 福建省 政和县志.pdf
- 知识产权对策、研究成果管理及合作权益分配.pdf VIP
- 人工智能对学习、教学和教育的影响-The Impact of Artificial Intelligence on Learning, Teaching, and Education.docx
- 中越边广西龙邦镇护龙村跨国婚姻问题研究及对策.doc VIP
- 小学道德与法治六年级下册《我们生存的家园》教学设计及反思.doc
- 宏观经济学计算题.docx VIP
文档评论(0)