- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
领域驱动建模(Evans DDD) 彭晨阳 欢迎联系企业培训 Evans DDD 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计 )简称Evans DDD 领域建模是一种艺术的技术,它是用来解决复杂软件快速应付变化的解决之道 Evans DDD 领域模型重要性 没有领域模型,只是靠代码编写完成一个又一个功能,复杂的领域需求会使得他们无法交流讨论,使工作陷入泥沼。 有少许领域模型,但是没有维护好模型与代码直接的联系,两者产生差异,无法实现。 DDD优点 分析设计发展的三个阶段 第一阶段:围绕数据库的驱动设计,新项目总是从设计数据库及其字段开始。 第二层次:面向对象的分析设计方法诞生后,有了专门的分析和设计阶段之分,分析阶段和设计阶段是断裂的。 第三阶段:融合了分析阶段和设计阶段的领域驱动设计(Evans: DDD)。 第一阶段:传统的数据库方式 过去软件系统分析设计总是从数据库开始,这种围绕数据库分析设计的缺点非常明显: 1.分析方面:不能迅速有效全面分析需求。 2. 设计方面:导致过程化设计编程,丧失了面向对象设计的优点。 2. 运行方面:导致软件运行时负载集中在数据库端,系统性能难于扩展,闲置了中间件J2EE服务器处理性能。 对象和关系数据库存在阻抗,本身是矛盾竞争的。 第二阶段:分析和设计分裂 第二阶段比第一阶段进步很多,开始采取面向对象的方法来分析设计需求。 分析人员的职责:是负责从需求领域中收集基本概念。面向需求。 设计人员的职责:必须指明一组能北项目中适应编程工具构造的组件,这些组件必须能够在目标环境中有效执行,并能够正确解决应用程序出现的问题 两个阶段目标不一致,导致分裂,项目失败。 新阶段:分析设计统一语言 统一领域模型,它同时满足分析原型和软件设计 ,如果一个模型实现时不实用,重新寻找新模型。 一个无处不在(ubiquitous )的语言,项目中所有人统一交流的语言。 减少沟通疑惑,减少传达走样。使得软件更加适合需求。 没有领域(边界)的模型 一个印在大纸张上的完整类图,整面墙都被它覆盖,花几个月分析开发的领域模型,模型大多数对象都与其中三四个对象有错综复杂的关系,且关系网几乎没有自然边界。分析人员是忠于领域需求本质。 问题:开发人员开始实现应用程序时,彼此纠缠的关系根本无法转换成可存储 可检索的实现。 是不是基于概念的模型类图不能成为程序设计的基础? 领域模型在软件架构中位置 什么是领域模型 Domain Model? 某个范围内的模型。首先是边界划分,在边界中寻找代表领域本质旋律的模型。 领域模型只表达需求真实世界模型,和软件架构技术无关。 模型都是有前提和范围,或者称为有场景前提的。没有跨越范围的永恒不变的模型 。 由领域专家来定义领域模型。 名词==类名 动词==类中方法 服务或其他 机器人 机器人的领域模型 确定核心领域 大型系统中,有很多有用的组件,他们非常复杂,都是软件成功不可或缺的,这样组件实在太多,以至于领域模型的精髓部分变得不明显甚至被忽视。 不可能所有部分都进行提炼,分清轻重缓急,让领域模型真正成为资产。 核心模型必须足够灵活和充分平衡来创建应用程序功能,不要倾向于使用技术基础结构如数据库来解决问题。 无需专业业务知识容易能理解能引起程序员的兴趣,他们认为只有解决这些问题才能积累自己专业知识,同时为自己简历增光添彩,这对于公司是浪费。 不注重核心领域的案例 银团贷款系统:大多数技术天才和技术高手都对数据库映射层和消息接口津津乐道,而业务模型却交给一些刚刚涉足面向对象技术的新手们打理。 尽管为持久领域对象提供详细注解文字说明,能够反映设计思路,也设计了友好的用户界面。 这些特性都是外围,当这个软件最终交付用户使用时,差劲程序员二次开发拓展时却依然搞得一塌糊涂,整个项目差点失败。 通用子域:非核心领域 提炼核心领域,就必须剔除反面通用子域。 不同行业运输业 银行业 制造业都需要某种形式组织结构图。组织结构图就是通用子域。 许多应用跟踪应收帐款 费用分类和其他帐务信息,这些信息都可以使用通用的会计财务系统来处理。 有两个项目处理带时区功能的日期和时间组件,花费最好的程序员数周时间,虽然必须做,但不是系统核心。 考虑现有解决方案或开源公开模型来替代通用子域。 考虑外包,将通用子域外包,自己掌握核心领域。 领域中寻找核心模型 找出核心模型,提供一种方法让我们很容易地从众多支持模型中将它区分出来,将最有价值 最体现专门知识的概念凸显出来,核心变小。 让最好的程序员来处理核心模型,根据需要调整人员的配备,尽力找出核心的深
您可能关注的文档
最近下载
- 辽宁省社区工作者招聘笔试真题.pdf VIP
- 2_H3G-TA硬件安装调试手册(CM-02N)B2版(对外公开)华塑电池巡检仪.pdf VIP
- 超实用高考英语复习:阅读理解话题分类专练 文娱与体(含答案).docx VIP
- 民航法律法规教案【参考】.doc VIP
- 实验室生物安全管理手册(2025版).pdf VIP
- 名著导读(朝花夕拾).ppt VIP
- 民航法律法规与实务(全套课件).ppt
- 服装包装、配送、检验、验收及售后服务方案.docx VIP
- 高中英语人教版选择性必修第一册词汇表单词英译汉默写.docx VIP
- 2025年辽宁省锦州市北镇市观音阁街道招聘社区工作者考前自测高频考点模拟试题含答案解析.docx VIP
文档评论(0)