领域驱动设计概述(一)
什么是领域?
答:用户亟待解决的问题区域就是领域。人类社会的方方面面,上至高精尖的前沿科技,下至常态化的衣食住行都可以用领域来描述。
什么是领域驱动设计?
答:领域驱动设计的本质就是通过消化吸收大量的领域知识,最终得出一个反映深层次领域知识并聚焦于关键领域概念的模型。也可以理解为领域驱动设计的产物就是模型。
什么是模型?
答:1、模型是对大量知识进行选择性的简化以及有意识的组织后得出的产物,是一组领域知识关键概念的集合;2、模型是一种无形的思想,而不是一种有形的表现形式,它可以通过画图表现,也可以通过精心书写的代码或者文字表现;3、模型是运用DDD进行项目规划设计的整个过程中使用的通用语言的中枢。
什么是通用语言?
答:为了降低由于领域专家以及设计开发人员专业方向不同而导致的沟通成本,通用语言随即诞生,顾名思义通用语言就是领域专家和设计开发人员之间基于领域模型进行沟通的桥梁。
为什么使用领域驱动设计?
答:1、有很多因素会导致软件开发复杂化,但最根本的原因是问题领域本身错综复杂,而这种复杂我们无法避免,我们能做的只有控制这种复杂性,而控制复杂性的关键是要有一个好的领域模型,故此DDD技术诞生;2、与三层架构相比解决的什么问题?暂且搁置,后续回答
什么场景适合使用领域驱动设计?
答:更适用于敏捷开发过程;使用DDD必须满足两个前置条件:其一是迭代开发,以保证DDD形成反馈闭环,其二是领域专家要和开发人员有密切的联系,因为模型毕竟是要落地实现,只有开发人员更好的理解模型才能确保模型落地的完成度。
什么是反馈闭环?
答:在项目不断地演进过程中,反馈闭环促进了模型的精细化,起到了“训练”模型的作用。