对结合BDD进行DDD开发的一点思考和整理(3)

发表于:2016-12-01来源:老毕的程序人生作者:老毕的程序人生点击数: 标签:BDDDDD
组合。由于有TDD的基础,所以这个过程的后半实现部分并没有想象中的困难,反而是在前半分析部分理清Specification并写出Feature文件,由于找不准 Why-Who-
 组合。由于有TDD的基础,所以这个过程的后半实现部分并没有想象中的困难,反而是在前半分析部分——理清Specification并写出Feature文件,由于找不准 Why-Who-How-What ,而让我犯了不少迷糊。

起初,我的想法很简单,只要能搭出这个Why-Who-How-What的框架,剩下的工作将只是往里填充内容而已。所以我在使用 Impact Map 这个脑图工具时,一开始就拘泥于 BDD in Action 作者在第三章的阐述,只能教条式地从该书第72页列举的4点主题去寻找Why:

  • Increasing revenue 增加收入
  • Reducing costs 减少支出
  • Protecting revenue 保护收益
  • Avoiding future cost 避免将来的开销

于是,我得到了一张象下面这样的图。这显然与我们的目标相距甚远,因为这样的Business Goal 并不够明确具体,不是完全可量化的,也无法直接作为验收标准。但这并不是说这样的做法是错误的,只能说是仍不够精确的。因为它对于我们理解用户需求还是有一定帮助的。

而且在这个过程中,如果说找出Why和Who还不算难事,那么要挖出How与What则让我大费周张。在书中,作者对How的部分引入了 Capability 的概念,并建议参照Liz Keogh的观点,以”to be able to”的形式来描述。而对What的部分,作者则引入了 Feature 的概念,强调这里描述的应该是系统能以何种方式帮助特定角色实现相应的Capability。

于是当我按图索骥时,却再一次陷入了教条主义的泥沼,搞不清什么应该放在How、什么又该放在What里。而致使我陷入被动的另一个因素,则是我发觉中英文在表达How与What时语义上存在的混淆。比如”它会怎样改变?(How should it change?)“与”它会发生什么样的改变?(What should be the change in it?)”,你能分得清这两者有什么真正的区别吗?

尽管我反复阅读 

原文转自:http://www.cnblogs.com/Abbey/p/5143674.html