运用领域模型

运用领域模型说明

非原创,感谢《领域驱动设计》这本书框架

模型是什么

模型被用来描绘人们所关注的现实或想法的某个方面。模型是一种简化。是对现实的解释——把与解决问题密切相关的方面抽象出来,而忽略无关的细节。工具

程序和业务

每一个软件程序是为了执行用户的某项活动,或是知足用户的某种需求。这些用户应用软件的问题区域就是软件的领域。一些领域涉及物质世界,例如,机票预订程序的领域中包括飞机乘客在内。有些领域则是无形的,例如,会计程序的金融领域。软件领域通常与计算机关系不大,固然也有例外,例如,源代码控制系统的领域就是软件开发自己。翻译

(技术或者软件是用来实现业务所要的功能或者解决业务计算遇到的瓶颈问题)设计

为了建立真正能为用户活动所用的软件,开发团队必须运用一整套与这些活动有关的知识体系。所需知识的广度可能使人望而生畏,庞大而复杂的信息也可能超乎想象。模型正是解决此类信息超载问题的工具。模型这种知识形式对知识进行了选择性的简化和有意的结构化。适当的模型可使人理解信息的意义,并专一于问题。开发

(我的理解:若是遇到要对一个庞大复杂的业务作系统开发,所须要的知识体系很是大,这个时候可使用一些抽象的模型或者方法,更好的理清业务逻辑,造成软件系统,有些人为何业务设计能力那么厉害,就是由于抽象思惟能力很强)产品

领域模型并不是某种特殊的图,而是这种图所要传达的思想。它毫不单单是领域专家头脑中的知识,而是对这类知识严格的组织且有选择的抽象。图能够表示和传达一种模型,一样,精心书写的代码或文字也能达到一样的目的。领域建模并非要尽量创建一个符合“现实”的模型。即便是对具体、真实世界中的事物进行建模,所获得的模型也不过是对事物的一种模拟。它也不仅仅是为了实现某种目的而构造出来的软件机制。建模更像是制做电影——出于某种目的而归纳地反映现实。即便是一部纪录片也不会原封不动地展示真实生活。就如同电影制片人讲述故事或阐明观点时,他们会选择素材,并以一种特殊方式将它们呈现给观众,领域建模人员也会依据模型的做用来选择具体的模型。class

模型在领域驱动设计中的做用

在领域驱动的设计中,3个基本用途决定了模型的选择。软件

(1) 模型和设计的核心互相影响。正是模型与实现之间的紧密联系才使模型变得有用,并确保咱们在模型中所进行的分析可以转化为最终产品(即一个可运行的程序)。模型与实现之间的这种紧密结合在维护和后续开发期间也会颇有用,由于咱们能够基于对模型的理解来解释代码。技巧

(2) 模型是团队全部成员使用的通用语言的中枢。因为模型与实现之间的关联,开发人员可使用该语言来讨论程序。他们能够在无需翻译的状况下与领域专家进行沟通。并且,因为该语言是基于模型的,所以咱们可借助天然语言对模型自己进行精化。程序

(3) 模型是浓缩的知识。模型是团队一致认同的领域知识的组织方式和重要元素的区分方式。透过咱们如何选择术语、分解概念以及将概念联系起来,模型记录了咱们看待领域的方式。当开发人员和领域专家在将信息组织为模型时,这一共同的语言(模型)可以促使他们高效地协做。模型与实现之间的紧密结合使来自软件早期版本的经验能够做为反馈应用到建模过程当中。

软件的核心(技术为业务服务)

软件的核心是其为用户解决领域相关的问题的能力。全部其余特性,无论有多么重要,都要服务于这个基本目的。当领域很复杂时,这是一项艰巨的任务,要求高水平技术人员的共同努力。开发人员必须钻研领域以获取业务知识。他们必须磨砺其建模技巧,并精通领域设计。

(我的理解:然而,不少技术开发人员都不会主动去了解业务设计,只关注本身的技术是否获得提升,我曾经的组员不少都是这样的思惟,最后致使作东西须要别人来设计框架,讲解逻辑,本身使用技术实现,很是片面的认为写代码是技术的所有,认为掌握不少复杂的业务新知识,而这些新知识对提升计算机的能力并没有裨益。我认为,技术人员使用模型来抽象业务逻辑,是很是有必要的。)

开发人员能够采用一些系统性的思考方法来透彻地理解领域并开发出有效的模型。还有一些设计技巧可使毫无头绪的软件应用变得层次分明。掌握这些技能能够令开发人员的价值倍增,即便是在一个最初不熟悉的领域中也是如此。

相关文章
相关标签/搜索