您的位置 首页 > 腾讯云社区

TDD 算不算契约式设计?---袁慎建@ThoughtWorks

TDD不算契约式设计,因为TDD是一种软件开发方法,DbC是一种设计思想,这两个概念本身不在一个维度上。但要说TDD里面涉及的一些思想,是有关联的。为何这么说?请继续往下看。

TDD提倡以终为始的思考方式,这个“终”就是你跟客户(业务方)定下的契约。而这个"契约"对双方的约束:

客户要按照之前商量好的规则来使用系统。你(系统)需要满足客户各种规则下的期望。

客户很可能在规则之外行事(假设客户喜欢不按套路出牌),比如需求变更(C、R、U、D),那其实你跟客户的"契约"也发生了变化了,通常会尝试对新的需求达成一致后形成一套新的"契约"。

再往外延伸,你满足了客户这些业务需求后,特定时间内交付了系统,客户会支付你一笔劳动报酬,这也是契约,比如商务合同。

所以说,TDD中也浮现了契约的思想。参加过我的TDD训练营小伙伴应该都深有体会的一点是:Tasking(面向业务问题的拆分)是一个关键步骤,那么Tasking出来的Task,就可以类比成一个个小的契约:

Given:代表对的约束When:约定好的行为Then:对你(系统)的约束

实例化一下:

Given 一个有空位的储物柜When 用户来存包Then 存包成功,并拿到一张票

以上Task就是一个针对用户存包行为的契约,契约对双方的约束:

客户需要提供一个有空位的储物柜。你(系统)需要帮助用户存好包,并且返回一张票。 ---来自腾讯云社区的---袁慎建@ThoughtWorks

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: