一、为什么要写Specification(规约)
首先Specification是团队合作的关键。如果没有规约就没办法写出程序,即使写出了程序也无法判断程序的正确性。其次,specification也是程序和客户端之间达成的一致,即客户端的要求是什么,我们程序员需要做什么等等。specification不仅给我们程序确定了责任(我们需要编写怎样的程序),也同样给客户端确定了责任(他们需要遵守怎样的输入原则,输入怎么样的数据等等)。
如果不写specification会有什么样的后果?
也许会引入很多不必要的bug,就比如:我编写的程序不希望客户输入一些不合法的数据,但是没有specification,客户并不知道那些事不合法数据,就会导致程序出错或者得到非法的结果。而且没有specification,和你一起编写程序的伙伴,可能和你产生不同的理解导致开发的不同的部分是不兼容的。没有规约我们也很难定位程序的错误。
所以说specification对于一个好的程序是必不可少的,而且往往程序对specification的要求很高。
二、怎样写Specification
specification需要明确输入、输出的数据类型,需要讲清楚method的功能以及它的正确性,以及它的Performance expectations(性能)。
1、Specification structure : pre-condition and post-condition(前置条件和后置条件)
前置条件通过“requires”描述,前置条件是对客户端的约束,在使用方法是必须满足的条件。
后置条件通过“effects”描述ÿ