正确性与健壮性概述

正确性与健壮性是软件构造中一堆很重要的概念,它们分别对应着软件设计中的不同导向,指向软件设计中的不同分野。然而,一个优秀的程序需要同时具有优良的正确性与健壮性。

健壮性(robustness),指系统在不正常输入或不正常外部环境下仍能够表现正常的程度。面向健壮性的编程要尽可能少报错,将一些理论上不合法的输入合法化。而就算程序在某些条件下必须终止,也需要通过一些途径向用户或者系统进行告知,从而达到“优雅地退出”这一目的。

为了能较好地进行面向健壮性的编程,编程的程序员应该假定用户的输入是不合法的、模棱两可的、易于引发错误的。然后根据可能引发的各种错误进行分类的处理。而同时,为了减少用户输入错误的可能性,返回给用户的提示应该尽可能地做到表述清晰、没有歧义。

用一句话来简单得概括面向健壮性编程的行为规范就是,“严于律己,宽于待人”。

而在对用户的可能输入进行分类处理之外,健壮性编程还有其他的特点。其一,封闭设计细节,限定用户的恶意行为。由于在前面的论述中,我们已经把用户设定成了一个可能会在各种程序部分中以各种方式产生错误的存在,因此为了防止程序的核心代码在某种情况下被修改,我们要将程序的核心代码与用户隔离,以防止像是你家里养的猫一样的用户哪天一个不小心就直接把你的程序搞废了。其二,我们还需要考虑各种特殊情况,不要忽视任何的可能性,在已经将用户设定成你家的猫主子之后,我们的代码设计也应当有相应的调整。即需要考虑一部分代码遭到修改之后的处理策略与处理方法。在这一步上,我们应该多多学习运维工程师的职业精神。毕竟,你永远也不会知道你的用户会怎么使用你的程序。

正确性(correctness),指程序按照最初要求运行的能力,是最重要的程序指标。

没错,正确性是要比健壮性、可读性、可复用性这些性质更重要的程序指标。如果说健壮性、可复用性这些性质相当于无数个零,那么正确性就相当于这些零之前唯一的那么一个一。如果一个程序无法做到正确的运行,那么即使她再健壮、再人性化,那也是白费。如果说健壮性致力于尽量让程序始终保持在运行状态。那么正确性就应该是致力于让程序的运行始终保持正确。在正确性拉满的情况下,任何一个小小的差错,一个小小的不符合规定,都会造成呢过整个程序的终止。以看电影为例,在正确性拉满的情况下,即使一个电影的某个画面突然缺失了仅仅一个像素,程序也应该立刻报错,终止程序的运行、终止电影的放映。

在程序设计中,对外的接口,趋向于健壮性,对内的设计,倾向于正确性。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值