关于spec的学习理解

        spec是程序与客户端之间关于方法的协议,也是开发者在写这个方法时所需要遵守的准则。它蕴含着对开发者和客户端两边的要求。在实际使用中,规约有很多的必要性以及优点。

一.协调开发者与客户端,提高效率

精确的规约有利于区分责任,客户端无需阅读调用函数的代码,理解spec即可。给双方都确定了责任,在调用时都要遵守。规约还保证了开发者与调用者对方法的理解一致,即根据规约开发和调用方法,在分工合作时能够将工作模块化,每个人负责好自己的工作,通过规约将其联系在一起,这样有效地提高了效率。

二.内部代码与客户端之间的“防火墙”

规约可以隔离变化,无需通知客户端,扮演防火墙角色,代码内部实现的策略与细节不在规约里体现,规约只告知方法的作用以及要求的调用条件与结果,代码具体实现放在内部注释中,便于日后开发者维护与理解自己的代码,只需保证规约不变弱,能够满足原本的要求即可。这样保证了代码的封装,避免泄露

三.根据规约编写测试

在开发中,要求需要先定义方法的spec,然后依据规约来编写方法的测试用例,最后再来写该方法的代码。这样做是通过黑盒测试的方法,在测试用例覆盖率足够的前提下,能够基于客户端的角度出发来保证调用的方法满足规约条件,能够解决相应的问题。如果不根据规约来写测试用例,而是先将具体代码写了之后再来进行测试,就可能会带着先入为主的观念,测试不再是黑盒测试,可能会出现遗漏与错误。此时,你的测试就不是完全基于规约去进行的了,也就不能保证能够对规约中规定的功能进行全面且正确的测试。

四.规约的强度与前置后置条件

前置条件:对客户端的要求;后置条件:对开发者的要求。在再前置条件满足时,后置条件也必须满足。 规约的强度:越强的规约,对客户端的要求就更低,对开发者的要求更高,客户端可以输入的参数的要求就低,因为强的规约能够考虑更多,处理更多种输入,对于更多的输入都能处理成对应的输出,因此对开发者的要求就多了。所以更强的spec意味着更弱的前置条件和更严格的后置条件

五.对规约图的理解

规约图可以理解成符合该归约的方法的数量,规约图越大,意味着有更多的实现方法来符合这个规约,开发者的选择多了,规约强度就弱了。而规约图越小,意味着能够实现规约或者说处理前置条件的实现代码方法少了,对开发者的要求就高了。更强的规约表示的规约图包含在弱规约的规约图中,这是因为能够处理强规约的实现代码方法更全面,同时一定能处理弱规约。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值