Robustness
- Robustness(鲁棒性/健壮性): 系统 或组件在存在无效输入或压力环境条件时可以正确运行的程度
- 鲁棒性编程关注异常终止和异常活动的处理
Robustness principle (Postel’s Law)
- 做事要保守;接受别人的东西要大方。
- “是你送的,保守的自由在你接受”
- 换句话说,程序将消息发送到其他机器(或其他程序在同一台机器上的)应完全符合规范,但程序接收消息应该接受nonconformant输入只要意思很清楚。
- 对自己做的事情保守(满足specification),对接收的信息自由(能够处理 各类情况)。 严于律己,宽于待人!
Correctness
- 正确实现规格说明的能力
- 永远不要返回不准确的结果,无结果优于不准确 的结果
- 总是尝试做些事情,确保软件运行,及时有时会产生一些不准 确的结果
Robustness vs. correctness
- 在天平的两端
- 健壮性增加了对常见错误和非严重 错误的容错,而正确性在遇到任何不完美的输入时会引发错误。