DDDENODE.PDF

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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!

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8010045112000002

1亿VIP精品文档

相关文档