领域驱动设计学习-让领域模型发挥作用

软件开发过程中出现的问题:

当我们在着手设计一款复杂的应用软件时,我们会发现,很多时候我们对于软件所应用的知识一无所知。当然可以请教相关的专家,但是相关专家可能不会懂得软件开发,他们是所在领域的专家,所使用的术语作为开发人员并不能深刻理会。我们作为开发人员,我们所使用自己能理解的术语,领域专家们也并不能理解。这就造成了我们双方沟通上的困难。以至于我们所制作的软件并不能符合相关领域的应用。

使用领域建模解决:

1,消化知识:

     对于传统的开发模式来说,业务专家与分析员进行讨论,分析员消化理解知识后,对其进行抽象并将结果传递给开发人员,再由开发人员进行编写软件代码。这种方法是将初期的分析建模和后期的代码开发分离开。分析员负责模型的创建,但他们的模型是基于业务专家的意见。知识只是朝一个方向进行流动。

     好的程序员会自然而然的抽象并开发一个可以完成更多工作的模型。如果在建模过程中没有领域专家的介入,那么开发出来的软件只会做基本工作,而不会充分反映出领域专家的思想。

     一个好的软件开发团队,应该除了必要的软件开发人员外还应该有领域专家的参与。在团队所有成员一起消化理解模型。开发人员可以向领域专家学习领域相关知识,并将知识运用于模型的设计过程中。随着业务知识的增长,领域模型在不断进化。这一过程叫之前死板机械的进行功能开发有了更多的灵活性。

     随着开发的进行过程,所拥有业务知识的开发人员,也许由于种种原因离开团队,团队可能由于重组而被拆散。这就导致了知识的分散。所以应该有意识的积累知识并且进行持续学习。对于每一个开发人员来说,拥有完善的技术知识外应该好要培养一般的领域建模技巧。

    对于领域知识的认知不应只停留在表面层上,应该要深入,随着对领域和应用程序需求的理解逐步加深,我们往往会丢掉那些最初看来是很重要的表面元素,或者切换他们的角度。

2,使用多种沟通手段:

     领域专家对于软件开发的知识或者理解角度与开发人员不同,但他们使用自己的领域行话。而开发人员也许会使用不同的语言,另外的角度去描述问题。如果两者使用的语言支离破碎,项目必将遭遇严重问题。当然可以使用中间的翻译,但翻译可能会带来误解的风险。项目需要一种统一的公共语言。公共语言并非一种语言那么简单,而是需要将团队沟通和软件实现联系在一起,形成领域专家和开发人员都认可的模型。这种模型是领域专家和开发人员交流的统一平台。将模型作为语言的中心,确保团队在交流过程和代码中坚持使用这种语言。模型的体现可以是文档,绘图。

要将开发过程中所使用的一切手段都应该结合模型。

3,绑定模型和实现:

     应该将软件分析和设计过程将全程渗透领域模型。分析工作抓住领域内的基础概念,并转换为易于理解和表达的方式。设计工作主要指定一套可以由项目中使用的编程工具创建的组件,解决项目中遇到的实际问题。领域模型驱动设计不应将分析模型和程序设计分开,而是寻求一种能够满足这两方面的单一模型。因此,软件系统各部分的设计应该忠实地反映领域模型,以便体现出这二者之间的明确对应关系。我们应该反复检查并修改模型,在软件中更加自热的实现模型。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值