菜单
  

    领域驱动设计(简称 ddd)概念来源于2004年著名建模专家eric evans发表的他最具影响力的书籍:《domain-driven design –tackling complexity in the heart of software》(中文译名:领域驱动设计—软件核心复杂性应对之道)一书。,书中提出了“领域驱动设计(简称 ddd)”的概念。

    为什么DDD难以落地呢?

     

    第一,国内关于DDD的最佳实践还是太少了,除了知名的几个大厂以外很少看到有关于DDD的落地实践。这里附上美团的DDD实践,美团领域驱动设计;最佳实践太少意着,我们可以参考的资料就少,承担的项目失败的风险就大。

     

    第二,DDD中出现了很多的概念和术语,比如 聚合根,值对象,六边形架构,CQRS(命令和查询职责分离),事件驱动等等概念。很多人看到了这么多概念的时候,心中就开始打退堂鼓了。

     

    第三,DDD需要我们在领域建模花费很多的时间和精力,而且还可能导致付出和收益不成正比的情况。因为在界限上下文的划分上是非常考验架构师的业务水平。如果没有将业务模型很好的识别出来,那么可能很快模型就会在迭代的过程中腐败掉了。
     

    浅析DDD(领域驱动设计)最近在做一些微服务相关的设计,内容包括服务的划分,Restful API的设计等。其中比较棘手的就是Service的职责划分:如何抽象具有统一业务范畴的Model,使其模块化,又如何高度提炼并组合多模块,使得业务可独立服务化。为了找寻答案,看了不少书籍和博客,在DDD中找到了一些思路,个人觉得受益匪浅,或许也可以受用于大家,特分享于此。

    什么是DDD

    软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开发。而在业务知识梳理的过程中,我们必然会形成某个领域知识,根据领域知识来一步步驱动软件设计,就是领域驱动设计的基本概念。

    听起来这和传统意义的软件开发没啥区别,只是换了点新鲜的名词而已,其实不然。论文网

    软件开发 VS DDD

    一般软件设计或者说软件开发分两种:瀑布式,敏捷式。

     

    前者一般是项目经理经过大量的业务分析后,会基于现有需求整理出一个基本模型,再将结果传递给开发人员,这就是开发人员的需求文档,他们只需要照此开发便是。这种模式下,是很难频繁的从用户那里得到反馈,因此在前期分析时就已经默认了这个业务模型是正确的,那么结果可想而之,数月甚至数年后交付的时候,必然和客户的预期差距较大。

     

    后者在此基础上进行了改进,它也需要大量的分析,范围会设计到更精细的业务模块,它是小步迭代,周期性交付,那么获取客户的反馈也就比较频繁和及时。可敏捷也不能够将业务中的方方面面都考虑到,并且敏捷是拥抱变化的,大量的需求或者业务模型变更必将带来不小的维护成本,同时,对人(Developer)的要求也必然会更高。

     

    DDD则不同:它像是更小粒度的迭代设计,它的最小单元是领域模型(Domain Model),所谓领域模型就是能够精确反映领域中某一知识元素的载体,这种知识的获取需要通过与领域专家(Domain Expert)进行频繁的沟通才能将专业知识转化为领域模型。领域模型无关技术,具有高度的业务抽象性,它能够精确的描述领域中的知识体系;同时它也是独立的,我们还需要学会如何让它具有表达性,让模型彼此之间建立关系,形成完整的领域架构。通常我们可以用象形图或一种通用的语言(Ubiquitous Language)去描述它们之间的关系。在此之上,我们就可以进行领域中的代码设计(Domain Code Design)。如果将软件设计比做是造一座房子,那么领域代码设计就好比是贴壁纸。前者已经将房子的蓝图框架规划好,而后者只是一个小部分的设计:如果墙纸贴错了,我们可以重来,可如果房子结构设计错了,那可就悲剧了。

  1. 上一篇:琉璃神社,琉璃神社神秘代码
  2. 下一篇:permission denied解决方法没有权限
  1. 商铺九一分成什么意思 小...

  2. 男生做手艺湜什么意思,...

  3. 农村加盟项目排行榜,捞...

  4. 男生传统手艺湜什么意思...

  5. 男人想让你跟他做生意,...

  6. 哪里要回收旧衣服统货 旧...

  7. 丧尸药浴盐土冰的真正名称是什么

  8. 进出口贸易与经济增长文献综述和参考文献

  9. 多级反馈队列调度算法的研究+源代码

  10. 货币国际化国内外研究现状

  11. Toeplitz定理及其应用+文献综述

  12. 身体自尊量表(PSPP)

  13. 甲硫醇钠生产工艺设计任务书

  14. 街头游园设计

  15. 运动员广告形象塑造文献综述和参考文献

  16. 玫瑰精油特征香气成分研究

  17. 从何红舟《桥上的风景》中感受油画构成美

  

About

优尔论文网手机版...

主页:http://www.youerw.com

关闭返回