JdonFrameworkDomain-DrivenDesign(DDD)开源框架演示文稿.pptVIP

JdonFrameworkDomain-DrivenDesign(DDD)开源框架演示文稿.ppt

  1. 1、本文档共76页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JdonFrameworkDomain-DrivenDesign(DDD)开源框架演示文稿

JdonFramework Domain-Driven Design(DDD)开源框架 实际需求 日常企业信息化过程中,经常会一些表单数据需要输入数据库,如果可以在一两个小时内完成这样的应用是很多信息主管的想法。 中大型信息系统都是从当时一两个表单数据应用基础上建立起来。 Simplify the Best 1. 能够在一两个小时内快速开发简单应用系统。 2. 能够在此架构基础上无缝平滑发展成为一个可方便维护、可灵活拓展、可伸缩的中大型系统。 JdonFramework(以下简称JF)就是这样一个简单易使的轻量框架。 JavaEE多层架构 CQRS(命令查询分离) Architecture JF在JEE架构位置 技术背景 由于多层结构导致代码复杂,系统编码复杂,容易混乱,无法控制。 可选择范围太多导致学习成本比较高,无法使初学者快速上手。 目前J2EE标准技术只注重中大型系统,小型单机系统市场被忽视,可伸缩的小中型系统不容易开发。 轻量框架 新一代轻量框架 框架是现代Java开发的中心。框架为王: 1. 灵活性,完全松耦合,实现多层解耦。 2. 快速性,多层结构代码快速组装。 3. 可伸缩性,小型系统架构具备向中大型扩张的可能性,一劳永逸解决小中型系统的各方面需求,如缓存/性能。 JdonFramework特点 DDD : 领域驱动设计,通过突出领域模型作为整个系统的中心作用,以领域模型的设计驱动表现层和数据库的开发设计。 IOC或DI:完全自动识别的依赖注射模式,可以完全摆脱类与类之间的依赖关系,大大提高开发效率和重构速度。 Cache:内置缓存自动支持,借助Terracotta能够无缝将应用程序拓展到云计算架构。 DDD 领域驱动设计(Domain Driven Development )简称DDD 。 为什么要使用DDD/MDD? 有15种理由。 DDD + DSL(领域语言或框架)是目前软件主流趋势。 JF是一种DSL性质框架,未来会发展到真正DSL。 Evans DDD 大师说DDD DDD特点 统一语言:一个无处不在(ubiquitous )的语言,项目中所有人统一交流的语言。减少沟通疑惑,减少传达走样。使得软件更加适合需求。 统一领域模型:领域专家和程序员统一使用一种模型,没有数据库数据表等专业软件技术干扰。 专门的业务领域层:领域层除了业务没有其他,没有软件架构 框架等等底层技术。 以模型为核心的卫星图 DDD优点 坏设计之一:失血模型 尽管使用MVC模式和框架,但是将大部分业务逻辑写在控制器Controller中,如Struts的Action。甚至一个Action有几千行。 尽管使用SOA的服务,但是将大部分业务逻辑写在服务中。 在上面两种设计中,模型是只有setter/getter方法失血模型。模型对象成了纯粹的数据包装,没有业务行为和方法。 失血模型导致软件难于拓展和维护,重新回到面向过程的编程老思路。随着时间推移,开发效率降低。 坏设计之二:基于数据表的设计 最初订单有OrderItemId, OrderId, ProductId 和 Qty。 后来添加 MinDeliveryQty 和 PendingQty字段,这是和订单交货有关。 订单和订单交货是两个概念,但是我们把这些字段都混合在一个类中了。 尽管采取了OO设计,但这还是一种带有数据库设计影子的坏设计。 DDD设计:将实体的职责分离到不同限定场景 。 领域设计和数据库设计不同 领域不是把实体看成铁板一块,一开始就把它分解到各种场景。 下订单和订单交货交付是两个场景,它们应该有彼此独立的接口,由实体来实现。 在数据库中它们是一个,也就是说,从ER模型上看,它们是一个整体,但是从domain model领域模型角度看,它们是分离的。 领域设计:以Domain Model核心 Domain Model是JF系统的第一个设计开发对象。 每个Model都必须有一个主键;或唯一标识。 由Domain Model延伸界面模型和持久实体。 基于JF的DDD最佳实践 基于JF的DDD最佳实践 JF架构 @Model 领域模型,包括实体模型 值对象和领域服务,与技术架构无关。相当于鱼;生存空间是缓冲器中 @Service/@Component 技术组件架构,用以支撑领域模型在计算机系统运行的支撑环境,相当于鱼生活的水。空间在Context container,例如ServletContext中。 两者以Domain Events模式交互:异步 命令。 @Model command @Component JF的架构流程图 DDD实体模型 每个实体模型必须有一个唯一标识,如User对象必须有一个userId。 该实体模型必

您可能关注的文档

文档评论(0)

penlai + 关注
实名认证
文档贡献者

会计从业资格证持证人

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

领域认证该用户于2023年05月12日上传了会计从业资格证

1亿VIP精品文档

相关文档