• 代码review 方法之降龙十八掌 狼


    代码review 方法之降龙十八掌

    1.       书写规范

    口诀:编程书写要规范

    示例:(1)类名首字母大写,方法和变量名首字母小写;且首字母都是英文。

         (2)if和else书写要加{}。下面是不规范的写法

              If (int i=2)

               Int j=3;

              Else int k=4;

    2.       If判断

    口诀:见到if就找else

    示例:在程序中需要异常处理时,看有没有else的异常处理。

    3.       Switch判断

    口诀:switch中要有break、default,判断条件类型要正确。

    示例:下面是不正确的写法

          String a=“fsz123”;

          Int i=Integer.parseInt(a);

          Switch(i){

             Case 0: system.out.paintln(“test”);

             Break;

    }

    4.       For循环判断

    口诀:见到for循环多看两眼,边界是重点。

    示例:对for循环中,看循环条件的边界是否正确。如

    (1)       程序要求循环10次推出,你循环9次,就不正确。

    (2)       程序变量是0;然后减减,条件小于10就成了死循环。

    For(int i=0;i--;i<10){

    }

    (3)       传参数进来的变量要保证是正整数型。

    5.       While判断

    口诀:while要看内部的判断,防止死循环。

    示例:(1) 对于判断条件是true的,要在while内部看到break。

               While(true){

                  Break;

    }

         (2)对于给出了变量跳出条件的,程序内部的判断要有该条件赋值的跳出循环处理。         Int i=0;

                 While(i<10){

    I++;

    }

    6.       类内存分配

    口诀:类内存分配要释放,对象加载传递参数不可重复new。

    示例:(1)类在new分配空间后,在不用的时候要进行内存释放的操作,特别是C++程序没有自动回收机制的。

         (2)类在new分配加载参数后传递使用,不能在此new,否则参数丢失。

    Class Test{

    public static void main(String[] args){      

    A a=new A()  //动态分配A类

    a.setName(“feng Mr”);//添加参数

    B b=new B()   //动态分配B类

    b.reslut(a);    //调用方法并传递A的对象。

        }

    }

    Public class B{

        Public void result(A a){

        //这里不能在进行对A 类new,A a=new A();

        System.out.painltn(a.getName());

    }

    }

    7.       数组越界

    口诀:看见数组把神提,问题往往在下标。

    示例:数组使用的时候,往往越界会抛出异常;所以在使用的时候,占用的空间在合理空间内。

    8.       返回值检查

    口诀:返回值引用的类型要一致,值的流转深入方法内部多看看。

    示例:(1)返回值的类型要和使用的类型一致。

         (2)对于方法返回值,进入内部看看返回的值是否符合要求,如返回的true、false等是否写反了。

          (3)对异常情况处理的,要看看不同异常情况返回的错误提示信息或标识码是否符合要求。

    9.       字符串长度

    口诀:不要小看字符串,长度是个大问题。

    示例:String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE了。又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串。

    A、 字符串长度没有控制,超过了最大的长度,就会抛异常。

    B、 字符串长度过长,消耗内存影响性能。

    C、 自定义字符串长度,使用时超出范围。

    10.   类型转换

    口诀:类型转换要合法,小心转换丢数据。

    示例:要防止数据丢失或非法转换,如:double转换整数精度丢失,中文字符串转换整数,转换数据不符合要求。

    11.   对象空验证

    口诀:为空对象不能对参数进行去调用

    示例:若类对象为空的时候,进行参数调用会抛异常。如下

    Class Test {

       Private B b=null;//设置b类对象为空。

       Public void ceshi(){

       //没有new,进行分配内存就开始调用了,这里是不允许的。

       If(b.result==2){

       System.out.paintnl(“测试啦”);

    }

    }

    }

    Public class B {

       Public int result(){

       Return value=2;

    }

    }

    12.   流数据try、catch、finally

    口诀:数据的流转要有异常扑获和流关闭。

    示例:(1)io流数据处理的时候,在遇到异常或使用完毕后的时候要有finally做流关闭,释放内存的处理。否则下一步使用时,无法执行。

         (2)连接数据库的类同样需要关闭数据流的处理。

    13.   If、else、for循环嵌套太多

    口诀:If、else、for不宜过多的嵌套。

    示例:嵌套太多,造成机器反复翻译代码,性能也会下降。

    14.   全局变量

    口诀:全局变量引用注意值的变化和状态。

    示例:(1)验证变量是否为需要的值或引用

         (2)查看调用的全局变量代表的状态是否符合要求。如:引用的变量状态为a时是正确的,但引用变量时用了变量为B的就错误了。

    15.   多层嵌套的for循环

    口诀:for的循环有多层,判断变量条件命名各不同;防止同一变量名,反复加减死循环。

    示例:禁止使用同一个变量条件,否则容易造成死循环。还有对变量反复加减要注意,防止跳不出循环。

    16.   变量初始化

    口诀:赋值函数最危险,变量没有初始化。

    示例:变量在做赋值使用的时候,要进行初始化处理。如下是错误的写法

          Int i;//应该初始化 i的值为正整数,如0;

          If(i==3){

    }

    17.   运算符顺序

    口诀:遇到运算符,符号使用误混淆,优先运算要用好。

    示例:(1)>和>=,&&和||的使用要考虑好,不要混淆乱用,区别是很大的。

         (2)遇到加减乘除的运算,需要加括号的地方不要忘记加,否则运算会乱掉。见如下

           If(!a&&b+C*d||e){

    }

    18.   随机码的生成

    口诀:使用随机验证码有诀窍,时间间隔配合好。

    示例:(1)防止一定时间内,验证码没有过期被重复使用。如:随机数为3个,过期时间为5分钟,在5分钟内有1002次请求,就会有2次发送的验证码重复使用。若加了防重复提交,就会造成后面的用户无法提交验证码。若设置过期时间为4分钟,就不会存在这个问题。

  • 相关阅读:
    Python 虚拟环境(VirtualEnv)
    python 枚举
    Python 面向对象编程
    Python 使用模块
    Python 函数
    Python dict & set
    JAVA-工具类
    09-12 练习题
    JAVA-数组
    java-语句
  • 原文地址:https://www.cnblogs.com/gowhy/p/2920454.html
Copyright © 2020-2023  润新知