规约是写程序非常重要的一环。有了规约,我们才知道程序实现的正确与否;有了规约,团队合作才能有效地分配任务;有了规约,开发者才能与客户端达成一致。如果不写规约,开发者与客户端可能产生误解从而引发bug,不同开发者的理解也不尽相同。由此可见规约在软件开发过程中确实起到了不可或缺的作用。
规约在开发者和客户端之间扮演的就是防火墙的角色。客户端不需要知道代码的实现,开发者也不需要知道自己的代码被怎样使用。客户端只需要理解规约的内容知道代码的功能然后使用即可,开发者只需要实现规约的所有要求就行。当然开发者可以在不违背规约的条件下对代码进行改造,并且不用通知客户端。规约要求每个人都做好自己分内的事情。
规约主要包括输入和输出的正确类型,功能和正确性以及性能。更确切地说,规约一般包含前置条件和后置条件。前置条件是对客户端的约束,它说明在使用方法时需要满足的条件,由关键词requires引出;后置条件是对开发者的约束,它说明方法结束时需满足的条件,由关键词effects引出。同时规约只能告诉别人“能做什么”,而不能有具体实现。