《领域驱动设计》读书笔记1
最近看了很多的书,深深感到读书不写笔记等于白读,领域驱动设计是我准备在项目中主推的方法论,所以自己要先做好功课。
第一部分让领域模型发挥作用:
每个模型都代表了我们所感兴趣的现实或观点的某些方面。模型是一种简化,它对现实进行阐述,只是抽象出与解决手头问题有关的方面而忽略掉无关的细节问题。所以我们抽象出来模型不一定是对所有场景都是正确的,只要在某时,某地,某方面有用即可。模型是所有团队成员所使用语言的核心。
第一章 消化知识
开始讲的这个例子也有借鉴价值。
1.1有效建模的因素:
1、模型与现实相互绑定。未经加工的原型建立了早期必需的联系,在随后的迭代中始终对它进行维护和完善。
2、某个模型生成了一种语言。模型为建立团队中的共同语言起了推动作用。
3、开发了一个包含丰富知识的模型。模型并不仅仅是一个数据方案,它是解决一个复杂问题必不可缺的。它捕获了各种类型的知识。
4、提炼模型。在模型变得更加完善的过程中,一些重要的概念被加入其中。没用的概念被去除。
5、头脑风暴与实验。草图和头脑风暴方式结合可以促进建模的成功,同时将讨论出来的结果进行实践也非常重要。
1.2知识消化
高效的领域建模人员就是知识的消化器,他们对大量信息中的相关部分进行探查。他们尝试了一个有一个组织方式,寻找一种对冗余信息中的简单视图。领域驱动设计中的消化知识需要大量的反馈,我们知道没有反馈的沟通是低效的。
1.3持续学习
在编写软件的过程中,我们对知识的需求是永无止境。高效率的团队依靠学习,有意识的增长自己的知识。对于开发人员来说,我们既要学习如何建模方面的知识,还要学习领域方面的知识。
1.4知识丰富的设计
业务活动与规则对于一个领域来说与其涉及的实体同样重要;领域也会包含各种类别的概念。对知识的消化能够产生出反映这种理解的模型。在模型发生改变的同时,开发人员重构实现来表达模型,使得应用程序能使用得到知识。
1.5深层模型
有用的模型很少停留在表层关系上。
第二章 交流及语言的使用
基于模型的交流并不局限于使用统一建模语言(UML)中的图。为了更有效的使用模型,我们需要充分地使用每一种交流手段。
2.1通用语言
当一个项目的语言存在断层时,会面临一系列的问题。领域专家使用自己的行话,而技术团队成员却按照设计的思路调整和使用自己的语言去讨论领域。
天天进行讨论时所使用的术语与嵌入到代码中的术语分裂开来。甚至可能是同一个人,在编写文档或代码时,也会使用跟交流讨论时完全不同的语言,这会导致对于领域的某些深入描述只是短时间内存在,却无法反映到代码或文档镇南关。
语言转换减弱了交流的效果,使得知识积累也不尽如人意。
然而任何一种方言都不能够为通用语言,因为它们都无法满足所有需求。
要将模型做为语言的骨干。团队在所有的交流与代码中都应该联系使用这种语言。在图,文档编写,尤其是在发表意见过程中都使用相同的语言。要意识到通用语言中的变化也是模型中的变化。
2.2利用对话改进模型
结合模型来讨论系统。使用模型的元素和元素之间的交互来大声描述场景,按照模型允许的方式把概念组合在一起。找到更简单的方式来说出要表达的内容,然后将这些意见应用到图形和代码中。
2.3一个团队,一种语言
领域模型基本上市从领域专家的行话中得来,但是已经进行了整理,具有精确严密的定义。
有了通用语言,开发人员之间的会谈,领域专家之间的讨论以及代码本身的表达都基于同一种语言,这来自于一个共享的领域模型。
作者:Lance
出处:http://www.cnblogs.com/nuaalfm/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。