美文网首页
避免程序Bugs

避免程序Bugs

作者: Magicknight | 来源:发表于2017-09-10 12:10 被阅读7次

    避免Bugs

    1. 使用静态和动态检测以及不可改变性
    2. 开启断言减少程序bug
    3. 迭代式开发,(单元测试和回归测试)
    4. 模块化和封装化

    什么时候开启断言

    • 方法的参数
    /**
     * @param x  requires x >= 0
     * @return approximation to square root of x
     */
    public double sqrt(double x) { 
        assert (x >= 0)):"x is" + x;
      }
    
    • 方法的返回值
    public double sqrt(double x) {
        assert x >= 0;
        double r;
        ... // compute result r
        assert Math.abs(r*r - x) < .0001;
        return r;
    }
    
    • 覆盖所有的可能

    如果if和switch没有覆盖所有的可能,可以使用断言来阻塞不合法的可能

    switch (vowel) {
      case 'a':
      case 'e':
      case 'i':
      case 'o':
      case 'u': return "A";
      default: assert false;
    }
    

    关闭断言的情况

    1. 不要使用断言来测试外部的变量(如外部文件是否存在、网络是否可用、用户的输入是否正确)
    2. 测试时需要开启断言,给用户的时候关闭。

    模块化和封装化

    • 变量的范围应该最小化
    • 声明循环的变量应该在循环内声明
    • 在变量要使用的地方声明
    • 避免全局变量

    相关文章

      网友评论

          本文标题:避免程序Bugs

          本文链接:https://www.haomeiwen.com/subject/inbzjxtx.html