spec学习笔记

本文探讨了方法设计中的规约重要性,包括前置条件和后置条件,作为确保代码质量和可维护性的关键要素。前置条件约束调用者,后置条件约束开发者,两者共同构成契约。文章强调了规约的确定性、陈述性和强度,并提倡使用@requires和@effects注解。同时,讨论了欠定和非确定规约的情况。通过实例说明了如何写出好的规约,以提升代码的清晰度和可预测性。
  1. 设计规约

目标:方法的规约

前置/后置条件

欠定规约,非确定规约

陈述式、操作式规约

规约强度及其比较

如何写出好的规约

  1. “方法”是程序的“积木”,可以被独立开发、测试和复用,需要抽象

代码中蕴含的“设计决策”:给编译器度

注释中蕴含的“设计决策”:给自己和别人读

规约给“供需双方”都确定了责任,在调用时候双方都要遵守。

  1. 前置条件和后置条件

前置条件:对客户端的约束,在使用方法时必须满足的条件

后置条件:对开发者的约束,方法结束时必须满足的条件

契约:前置条件满足,后置条件必须满足

可以加入@requires 和 @ effects

  1. 规约的评价

规约的确定性;规约的陈述性;规约的强度

前置条件和后置条件的切分考虑

强的规约,放松的前置条件和更严格的后置。

  1. 欠定规约:同一个输入有多个输出

非确定规约:同一个输入,多次执行时的输出可能不同

操作式规约:伪代码

声明式规约:没有内部实现描述,只有“初-终”

例子

/**

*

*

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值