编写高质量的程序

    作为程序员,我把能写出无BUG或少BUG的程序看做是一个最基本的目标。如果被测出来,或者运营过程中被发现了很弱智的BUG,真是羞愧难当。有关如果编写高质量程序的书,看了不少,但实际实践过程中却收效不大。也许是太浮躁吧,看书的时候囫囵吞枣,没结合自己的时机去体会。
    先给BUG分个类:
    BUG类型1: 异常情况没处理到。
        1. 数组越界:
            1). 左边界
            2). 右边界
            3). 左边界<=右边界
        2. 取集合长度时,注意为0的情况

        3. 一个过程在执行过程中,他依赖的变量值被意外
            这种BUG可能在几种情形下出现。简单的,在函数的实现中,我们常说要保持函数的短小, 要尽量延迟变量声明,以保证这个变量在用到时不要被意外修改。这种情形比较容易识别和避免。
            多线程情况。其实就是竞态条件,写多线程程序时一般也会注意到这点,会加锁保护。
            过程被分为顺序的几个部分,在不同的时间点被执行。这种情况就不太好发现了。一个完整的过程,须要分为不同的几个步骤,每个步骤顺序,但在不同的时间点不同的函数中被执行。他们如果依赖某一个全局变量的值,且要求在一个完整的过程中值不能被改变的话,就比较难处理了。这种情况下不好加锁,因为所有的步骤都是在一个线程中完成的。为每一个过程保存一个单独拷贝也不完美,这通常带来非常大的额外内存消耗,尤其是在更改操作非常少的情况下。引用计数或者写时拷贝或许是个不错的选择,不过实现起来就有些复杂。
    BUG类型2:需求BUG
        我是指需求收集的不完全,直到使用时才发现少了件必要的功能。这就是考验需求发现的本领了。在我所经历的项目中,
    这一角色有时候就是程序员本身。那就更得注意了,收集需求是程序员的弱项。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值