健壮性编程
健壮性:系统或组件在存在无效输入或压力环境条件时可以正确运行的程度,它需要代码通过准确的显示错误消息来优雅地处理这些终止和操作。
健壮性原则:严于律己,宽于待人,具体说就是要尽可能放宽对于接受信息的要求,但是要尽可能加强输出信息的准确性。
健壮性编程的原则:
①be a Paranoia(做一个偏执狂):在构建软件时,要假定用户会破坏自己写的代码
②假定用户是白痴:认为用户不会遵守你写的规约
③避免危险实现:不能让用户有可能修改你的数据结构,必要的信息要对用户隐藏
④不要忽视小概率:任何可能犯错的地方,不论概率多小,都要重视
正确性:正确实现规格说明的能力。
正确性要求永远不要返回不准确的结果,即使最后没有结果,也好过返回一个不精确的结果。
健壮性与正确性对比:
①健壮性增加了对常见错误和非严重错误的容错率,而正确性在遇到任何不完美的输入时会引发错误。如下图
②健壮性使得用户和第三方开发者更加便利,而正确性使得开发者开发起来更加方便。
这是因为健壮性增加了程序的实用性,能够接纳各种情况,而如果只考虑正确性,开发者就不用关注各种各样奇怪的边界情况。
③实际情况下,我们一般在外部接口中注重健壮性