《领域驱动设计精简版》读书一

 

DDD为什么重要?

1、软件的本质是什么

软件的最终目的是增进一个特定的领域。为达到这个目的,软件需要和它服务的领域和谐相处。为此,软件要成为领域的映射。软件需要具现领域内重要的核心概念和元素,并精确实现他们的关系。软件需要对领域进行建模。

未加工的领域知识难以加工成软件构造,除非建立一个抽象,经过不断的努力我们会让抽象越来越清晰,这个抽象就是领域模型。领域模型不是领域专家头脑里面的知识,而是一个经过严格组织并能经过选择性抽象的知识。

我们需要通过模型来交流,为此1模型图形化,2模型语言化

2、如何做软件设计

软件设计和代码设计不一样的,前者类似构建房子的架构,后者类似在墙上定位油画

瀑布开发,业务专家将需求传递给业务分析人员,业务分析人员基于需求来建模,并传递给开发人员,开发人员由此进行编码,知识是单向的。业务专家得不到业务分析人员的反馈,业务分析人员也得不到开发人员反馈。

敏捷开发,预先很难确定所有需求,要先预先创建一个覆盖所有需求的模型很难,敏捷开发反对预先设计,通过业务涉众持续参与迭代开发和重构,开发团队更多的学习客户的领域知识,从而产出客户所需的软件。问题是害怕做深度、彻底的设计。

领域驱动设计结合了设计和开发实践,协同工作创造出一个更好的解决方案。

你可能感兴趣的:(《领域驱动设计精简版》读书一)