健壮性
健壮性:系统在不正常输入或不正常外部环境下仍能够表现正常的程度。面向健壮性的编程主要有以下特点:
- 处理未期望的行为和错误终止
- 即使终止执行,也要准确/无歧义的向用户展示全面的错误信息
- 错误信息有助于进行debug
面向健壮性的编程总是假定用户是恶意的,可能对输入的东西进行任意情况的输入,因此可能对程序造成影响,如果健壮性没有做好的话,程序甚至可能会直接崩溃。健壮性的原则是Postel’s Law:对别人宽容点,对自己狠一点。也就是说对自己的代码要保守,对用户的行为要开放。
健壮性的编程要求程序员封闭实现细节,限定 用户的恶意行为。并且在实现代码的过程中考虑极端情况,没有“不可能”。
正确性
正确性:程序按照spec加以执行的能力,是最重要 的质量指标!正确性和健壮性相比较而言,正确性永不给用户错误的结果,健壮性尽可能保持软件运行而不是总是退出,两者在一定程度上而言是存在矛盾的。正确性倾向于直接报错(error),健壮性则倾向于容错(fault-tolerance)。