加载中 ...
首页 > 新闻资讯 > 经验心得 正文

DDD & DDDLib在恒拓开源的发展历程与推广经验

2019-03-23 07:29:08 来源:沈阳软件公司 作者:沈阳软件开发

  这种方式对于MyBatis难以支持,对于NoSQL、云存储等其它存储介质同样没有现成的解决方案。

  DDDLib最终使用了第三种方案。

  JPA下的写法:

  MyBatis下的写法:

  推广DDD遇到的挑战

  上面论述了传统开发模式的一些问题,可是从另一个角度来说,传统的开发模式也有着它的优点:

    使用成本低:基于传统开发要领,使用SSH等框架,基本上所有的开发职员都没有上手价格,立马可以到场开发。开发速率快:传统模式的开发速率也快,尤其使用一些快速开发框架,开发一些简朴营业的项目,是比力合适的。在现实项目的开发中,传统模势的弱点并不显着,海内大部门项目只注重现实页面效果,至于设计的优劣,维护扩展的难易度并没有被重视。

  基于这些明白,在公司层面推广使用DDD头脑存一些难点与阻碍,尤其是公司早期一些项目,使用DDD的所带来的优势并不显着,反而前期会带来使用成本。

  另一方面,对大部门开发职员来说,传统的模式更容易接受和习惯,表->DAO->Services->UI这种很是简朴,基本没有学习成本。推广使用DDD则纷歧样,虽然手艺上并没有任何创新,使用的照旧Hibernate、Struts、Spring这些常用的手艺,但要害是编码的头脑纷歧样。DDD的要点,领域工具,领域服务,查询通道这些闪开发职员明白并熟悉这种编码气势派头,也是个不小的挑战,推广初期经常会遇到开发职员对这些理念的质疑。

  另外,虽然DDD提倡先对领域举行剖析建模,编写领域要领等焦点,再思量表的设计实沈阳小程序开发现,但在现实的开发历程中,受以往的模式影响,就算使用了DDD模式,开发职员经常照旧会用传统方式开发,对新模式无法明白,如:

开发职员照旧先设计表,再凭据表设计领域工具。许多项目依然照旧对实体举行增删改查,于是泛起DTO与实体属性一模一样的情形。开发职员对DTO的存在的须要性无法明白。在传统的模式中,操作数据库的基本上属于Dao的责任。DDDLib提供了两个数据查询通道,开发职员对于哪些需要使用仓储,哪些需要使用查询通道不能清晰明白。DDDLib提供了值工具,领域工具,领域服务来将领域与值举行分散,可是在现实的项目中,许多开发职员在项目使用领域工具,然后直接针对领域工具增删改查,很少真正使用到值工具、领域服务、聚合、工厂这些要素。

  以上种种让 DDD 又酿成传统方式,这又进一步闪开发职员感受DDD与传统模式没有本质区别,于是加剧了开发职员对使用 DDD 的疑问。

  怎样解决这些问题

在公司内部推广宣传DDD&DDDLib

DDD更多的是理念,手艺细节和传统的方式没有区别,更多的是要闪开发职员在理念上转变过来,因此推广DDD&DDDLib及其理念很是主要。不明白DDD头脑理念来使用DDD,最终很是容易造成难以使用,这有什么用,或为什么要用这样的感受。

定期举行DDD在手艺上的交流与探讨

如前文所述,DDDLib的一些手艺实现细节很是有争议性,因此我们会定期召集有想法的职员,不停讨论,网络使用者的意见,不停的修正优化实现。

对于有争议的手艺,也通过讨论,群策群力,找到最佳的实现方式。

制订最佳编码实践,指导DDD方式的编码

思量到开发职员从传统模式转变到DDDLib编码气势派头的转变及学习成本问题,通常公司的架构部都市编写一个最佳DEMO,示例各人怎样编写代码,明白查询通道,值工具,DTO,仓储,聚合等的实现与细节,资助开发职员准确编写。

通过真实项目逐步让各人熟悉到DDD的优点

在一些项目上,使用 DDD 并没有现实的优点,只有在营业庞大,需要不停迭代的如产物这样的项目,才比力适合 DDD。我们通常会拿真实的项目中的代码来示例说明使用DDD的利益。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。