防御性编程实用指南
1. 代码的内聚性与松耦合
在编程中,维护和调试代码往往意味着要进行修改。代码的优劣常常取决于其对修改的适应能力。内聚性能够让代码例程更易于理解,从而使修改的实现变得简单;而松耦合则让不同例程之间的连接更具灵活性,同样有助于简化修改操作。一个采用防御性编程的工程师会使用内聚性强且耦合性弱的函数。
例如,有一个 Broker 对象的 sel.If 函数,它先对客户端进行身份验证,然后通过调用其私有 Exchange 对象的方法来出售股票。 Exchange 类中 senD 成员函数的任何更改都可以在 Broker 类内部进行隔离,客户端的 sel.If 版本可以保持不变。
2. 检查错误输入
防御性编程的一个重要方面是留意可能出现的错误输入。不能想当然地认为传递给函数的参数总是合理的。
2.1 示例代码问题
以下是一个简单的计算平均值的函数:
float average(float *array, int size)
{
float sum = 0;
int i;
for(i = 0; i < size; i++){
sum = sum + array[i];
}
return(sum / ((double)size));
}
超级会员免费看
订阅专栏 解锁全文
1305

被折叠的 条评论
为什么被折叠?



