试图通过人工以正式的方式证明软件的正确性远比通过读代码的方式时间要长,并且大概率判断出错的可能性也大于后者。最好使用自动化工具,但也不总是能奏效。
许多好的编码实践会让通过读代码分析软件的正确性更容易,如下:
- 避免goto语句,避免让不相干的部分相互依赖。
- 避免使用可修改的全局变量,这样会让所有使用该变量的代码相互依赖。
- 每个变量尽可能的保持在最小使用范围,如一个局部变量应该定义在首次使用它的上一行。
- 使用空格使得代码可读性更佳,包括横向和纵向。如让相关联代码块对齐,并且用空行隔开不同的代码块。
- 为变量名,方法名,类名等选择合适的且相对短的名称,让代码能自解释。
- 使得函数功能单一,单一函数的代码行尽量控制在24行以下。
- 函数的参数个数应该控制在4个以下,相关联的参数应该使用对象进行封装。
- 小到代码块,大到依赖库,对外的接口应该足够窄,可保持良好的封装性,有利于读代码和分析错误。
小结
以合理的方式编码能促成读代码的高效性,互相交流自己的见解,让每一个人受益。