使用BDD时遵循开放/封闭原则有什么好处?

ops*_*psb 5 language-agnostic oop bdd open-closed-principle

开放/封闭原则似乎是关于防止对象或方法中的回归.鉴于您的代码被测试覆盖,因为您正在练习BDD,这似乎是一个多余的要求.此外,它似乎通过要求API级别而不是语言级别的可扩展性来引入额外的复杂性.

irc*_*ell 6

绝对有好处.实际上,两个主体(BDD和Open/Closed)是为不同目的而设计的.BDD旨在引领开发过程,这就是感受它的好处(缩短时间表,制作更高质量的代码等).打开/关闭旨在在开发过程中完成,但有助于维护.

BDD的好处很容易掌握.初始开发的时间越短意味着整个项目的成本越低,对吧?错误.根据60/60规则,项目成本的60%来自维护(并且该成本的60%来自部署后的需求变更).因此,虽然在初始开发阶段节省资金是有益的,但在维护期间可以节省更多.

这就是开放/封闭本金将获得回报的地方.通过遵循该原则,您将节省大量维护时间(因为您不需要跟踪损坏的单元测试,因为您更改了方法的功能).

开放/封闭主体并不是要防止回归,因为它阻止了几乎无法跟上的API变化.如果你注意到,好的API永远不会改变.他们可能会延长.零件可能已被弃用.但你永远不会看到setFoo(string bar)改变setFoo(int bar).这就是打开/关闭是为了防止......