领域模型:客观世界的主观认识

领域模型是对问题域这个客观世界的主观认识、理解、抽象和洞察,是主观和客观的交汇点。领域模型是问题域在人们的心湖中的投影。领域建模的过程,是认识多于创造发现多于发明

领域建模是软件开发中最重要的活动,没有之一。领域建模的产物——领域模型是开发组织最重要的资产之一,尤其是对于产品型公司(他们开发的标准化软件产品供成千上万家客户使用,例如各种ISV)或内用型公司(他们开发的产品用在自身的关键业务上,会持续使用几十上百年,例如金融机构、汽车、钢铁制造业、航空公司等等)而言,领域模型往往比依据领域模型开发出来的软件产品更珍贵,寿命也更长。

软件围绕着领域模型而创建,领域模型是自变量,软件是因变量。随着技术的升级换代,我们可能基于原来的的领域模型开发新版本的软件,例如更换编程语言——从Java换成Scala,更换编程范式——从面向对象编程换成函数式编程,更换持久化方案——从关系数据库换成NoSQL。模型比技术更稳定——越不变,越本质。对于软件开发组织来说,值得为领域建模投入最尖端的人才,相对于领域模型,各种具体技术和工具,包括编程语言、框架、基础设施,都是等而下之的,就像忽来忽去的浮云。

那么什么是领域模型?一句话:

**领域模型是