zoukankan      html  css  js  c++  java
  • 软件开发最重要的是可测性


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

    答曰:可测性。


    如何定义可测性?

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


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

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


    这是否会增加开发成本?

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


    如何增加程序的可测性?

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



  • 相关阅读:
    拷贝某文件至某位置
    Java对象的序列化和反序列
    常见的RuntimeException异常有哪些
    array数组增删元素
    失眠怎么办
    构造函数和函数区别(关键的new操作符)
    匿名函数递归(arguments.callee)和命名函数递归
    localeCompare方法在chrome浏览器取值问题
    random()方法
    iframe 父子页面之间取值
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330381.html
Copyright © 2011-2022 走看看