软构:spec规约


前言

学习了软件构造课,学习了规约spec,与以往编程不同,spec的学习让我更加深刻理解了一个合格的程序员应该做些什么,而不是跟学校完成作业一样只去思考如何实现要求


一、spec是什么?

写在方法前面的说明性注释,用来解释方法的功能、参数、返回值等

二、spec是如何构成的

1.总体示例

代码如下(示例):

/**
     * Add, change, or remove a weighted directed edge in this graph.
     * If weight is nonzero, add an edge or update the weight of that edge;
     * vertices with the given labels are added to the graph if they do not
     * already exist.
     * If weight is zero, remove the edge if it exists (the graph is not
     * otherwise modified).
     *
     * @param source label of the source vertex
     * @param target label of the target vertex
     * @param weight nonnegative weight of the edge
     * @return the previous weight of the edge, or zero if there was no such
     * edge
     */

在idea编译器中,当你定义了一个函数,在函数上方输入/**后直接回车就能生成规约的模板

2.方法的功能

根据上面示例可以看出,没有@符号的那一段解释了方法的功能,在这个示例中是添加,改变,删除一个带权有向边,同时告诉了各种情况的结果。

3.方法的前置条件

@param后面的就是方法的前置条件,实质上是方法的参数+参数的限制条件,在规约中,一旦满足了前置条件,方法的实现一定要满足后置条件

4.方法的后置条件

@return后面即为方法的后置条件,实质上是方法的返回值。但是规约的存在,更像是程序员之间的承诺和信任,如果你给我提供符合前置条件的参数,那么我就能给你提供正确的后置条件,你无需明白具体是如何实现的,只需要放心使用即可


总结

规约在我看来就是一种契约,你提供我要求的,我就提供你需要的,在实际使用中,规约的编写也能方便使用,如idea中如果将鼠标悬浮在方法上,就能明确的显示方法的参数,用法,也许自己编写的时候会觉得麻烦,但是会极大方便日后使用
上述规约在idea中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值