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,因为正常运行的时候,底层通常不该出异常的)。



  • 相关阅读:
    用超穷归纳证明极大理想定理
    [shell]计算未知个数数据的平均值
    C中的野指针—如何避免
    [C#学习笔记02]理解值和引用
    vim编辑器的配置让你的代码更加易读
    mipslinuxgcc交叉编译工具链搭建小结
    Ubuntu 9.10下KScope的安装
    [uC/OSII]基本操作:新建任务,分配信号量
    基于Philips MF RC522的ISO14443A标准卡读写
    Git常用命令 shuo
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330381.html
Copyright © 2011-2022 走看看