1、通过通用语言达成共识

通用语言,已经强调过好多遍了,在DDD再怎么重视都不为过,后面可能还会讲。

知识提炼的输出以及共识的构建就是常见的通用语言(UL)。

当与业务相关人员和主题专家进行建模时,每个人都应该有意识地始终应用富含领域专有术语的通用语言。这一语言必须现实制作,并在描述领域模型和问题域时使用。该语言还应该用于模型的代码实现,使用用作类名、属性和方法名称相同的术语和概念。正是这一语言使得业务和开发团队拥有了关于软件的有意义沟通。

UL用于将模型的代码描述绑定到以业务能够理解的语言和图表交流的概念模型。这句话说了好多遍,再重复一次。

UL它将包含来自业务的专业术语 以及在进行问题域的用例建模时发现的新概念和术语。

UL能避免持续从技术模型转换到业务模型的情况,因而也就能避免出现遗漏掉必不可少的见解的情况。

UL是一个共识。

2、领域知识的重要性

领域知识是关键,其重要性甚至要远甚于技术知识。

要处理具有复杂过程和逻辑 的业务 的团队需要将自身沉浸在问题域中,学习吸收所以相关的领域知识。这样让团队能够专注在要点上,并在其开发的应用程序代码库核心处创建一个能够满足业务用例的模型。而且在整个应用程序的生命周期中都要保持这样的做法。

如果不能用简单术语向你的业务用户讲诉问题域中的复杂概念,那么无法做好开始在其中开发软件的准备。

要为你正在构建的复杂应用程序 快速地持续发布更新(即便是在稀奇古怪的业务要求,或变化无常的功能时),就需要你在设计和开发期间重新调整你的精力倾注点——需要让你的团队专注于业务问题,而不是仅仅是技术。

3、一个持续的过程

知识提炼是一个持续的过程;团队应该持续地为问题域的简单视图而努力,该简单视图只专注于相关内容以便实现创建有用模型的目标。模型驱动设计和领域模型的演化是一个持续过程。

开发团队、业务相关人员以及主题专家之间的协作不应该局限在项目开始阶段。知识提炼在整个应用程序构建的生命周期中应该在业务参与的情况下被持续关注。

认识到随着系统的每一次迭代,模型都会有所演化,这一点也是很重要。模型永远不会尽善尽美,它只是对于当前问题可用而已。因为,当新的需求被添加进来时,模型就会改变;新的行为和用例也将需要模型的改变。

随着每一次的迭代完成,团队对于问题域的理解都会提升。这将带来 能够极大简化模型的更深刻的见解以及设计突破。

在系统投入使用时,模型可能也需要演化,这是由像 性能或对系统用途的更好理解 这样一些技术原因造成的。

一个好的模型要能够足够灵活以支持变更;一个成熟的模型会保有丰富且传神的概念以及问题域的专业术语,并且能同时业务和技术团队所理解。

最新文章

  1. [20141121]无法通过powershell读取sql server性能计数器问题
  2. nopi excel 导入
  3. JS 弹窗到右下角
  4. JS获取当前文件所在的文件夹全路径
  5. 在asp.net mvc中使用PartialView返回部分HTML段
  6. 学习笔记-[Maven实战]-第一章:Maven简介
  7. 录制屏幕(gif)便于在博客中嵌入软件licecap
  8. 迭代加深搜索算法总结 + Editing a Book UVa11212题解
  9. zoj2314 经典 无源汇有上下界最大流 并输出可行流
  10. 关于多线程中GCD的使用
  11. 关于JAVA Project.waitfor()死锁问题
  12. Unitty 3D 贪吃蛇 今日小记 -- 碰撞
  13. Java面向对象 线程技术--上篇
  14. Python的文件及异常
  15. termios结构体各成员的值(FreeBSD 12.0)
  16. js中级小知识4
  17. 百度Ueditor富文本编辑器 .net版本 任意文件上传执行漏掉修复
  18. 喵哈哈村的魔法考试 Round #12 (Div.2) 题解
  19. log4j.properties配置详解与实例-全部测试通过[转]
  20. 站内SEO规范

热门文章

  1. 数据库oracle(PGA+SGA分配机制)
  2. js数组排序sort()方法
  3. 013——VUE中多种方式使用VUE控制style样式属性
  4. 对无序数组的并发搜索的java实现
  5. iOS Charles Proxy 教程
  6. Chrome设置允许ajax跨域
  7. 前端之HTML补充
  8. 伪元素:placeholder-shown&&:focus-within
  9. 【转载】Python正则表达式指南
  10. HttpWebRequest传值