软件开发最重要的是可测性


有人问我软件开发最重要的是什么?

答曰:可测性。


如何定义可测性?

答曰:程序一旦有问题就会显著暴露出来的特性。


这是否会影响程序的稳定性?

答曰:错的就是错的,错误一旦被隐藏,就会成为长久的暗疮,并在未来带来各种稀奇古怪的问题,将增加长久的维护成本。如果有问题就当时当地的暴露出来,就会被解决掉,从而使得软件自内而外的健康,逻辑正确。这样的软件是易于长期维护的。


这是否会增加开发成本?

答曰:有问题就暴露,确实会在开发初期带来一些麻烦,因为程序动辄assert或者coredump,迫使开发者不断修复各种问题。但是一旦模块稳定了,就是自内而外的逻辑正确,没有隐藏任何错误,这对长期维护而言,是降低了成本。因为逻辑正确的东西,不会引起各种稀奇古怪的问题。而稀奇古怪的问题是最消耗维护成本的。


如何增加程序的可测性?

答曰:依据不同的语言和工具有不同的做法。总体而言是做逻辑正确的事情,不要怕return false,不要怕crash,不要用bug数量来衡量kpi。对C/C++而言,可以对各种输入做检查,然后对各种意外做出反应和记录(比如写日志,assert false,return false,甚至退出);对java和c#而言,就是及时return false、抛exception以及不要乱吃exception(实际上我建议只在ui层吃exception,因为正常运行的时候,底层通常不该出异常的)。



转载于:https://www.cnblogs.com/hehe520/archive/2012/05/14/6330381.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值