《阿里巴巴Java开发手册(终极版)》2-1之异常处理

异常日志 - 异常处理

第 1 项、第 9 项、 第 10 项、第 12 项

  1. 【强制】 Java 类库中定义的一类 RuntimeException 可以通过预先检查进行规避,而不应该
    通过 catch 来处理,比如: IndexOutOfBoundsException , NullPointerException 等等。
    说明:无法通过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,通过 catch
    NumberFormatException 来实现。

    正例:

     if(obj != null) {...}

    反例:

     try { obj.method() } catch(NullPointerException e){...}
  2. 【强制】异常不要用来做流程控制,条件控制,因为异常的处理效率比条件分支低。

《阿里巴巴Java开发手册(终极版)》1-9之其它

编程规约 - 其它

  1. 【强制】在使用正则表达式时,利用好其预编译功能,可以有效加快正则匹配速度。
    说明:不要在方法体内定义: Pattern pattern = Pattern . compile( 规则 );
  2. 【强制】 velocity 调用 POJO 类的属性时,建议直接使用属性名取值即可,模板引擎会自动按
    规范调用 POJO 的 getXxx() ,如果是 boolean 基本数据类型变量 (boolean 命名不需要加 is
    前缀 ) ,会自动调用 isXxx() 方法。
    说明:注意如果是 Boolean 包装类对象,优先调用 getXxx() 的方法。
  3. 【强制】后台输送给页面的变量必须加 $!{var} ——中间的感叹号。
    说明:如果 var = null 或者不存在,那么 ${var} 会直接显示在页面上。
  4. 【强制】注意 Math . random() 这个方法返回是 double 类型,注意取值的范围 0≤ x <1 ( 能够
    取到零值,注意除零异常 ) ,如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后
    取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。

《阿里巴巴Java开发手册(终极版)》1-8之注释规约

编程规约 - 注释规约

  1. 【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/*内容/格式,不得使用
    // xxx 方式。
    说明:在 IDE 编辑窗口中, Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注
    释 ; 在 IDE 中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高
    阅读效率。

  2. 【强制】所有的抽象方法 ( 包括接口中的方法 ) 必须要用 Javadoc 注释、除了返回值、参数、
    异常说明外,还必须指出该方法做什么事情,实现什么功能。
    说明:对子类的实现要求,或者调用注意事项,请一并说明。

  3. 【强制】所有的类都必须添加创建者信息。

《阿里巴巴Java开发手册(终极版)》1-7之控制语句

编程规约 - 控制语句

修改项:第 3 项

  1. 【强制】在一个 switch 块内,每个 case 要么通过 break / return 等来终止,要么注释说明程
    序将继续执行到哪一个 case 为止 ; 在一个 switch 块内,都必须包含一个 default 语句并且
    放在最后,即使它什么代码也没有。

  2. 【强制】在 if / else / for / while / do 语句中必须使用大括号,即使只有一行代码,避免使用
    下面的形式: if (condition) statements;

  3. 【推荐】推荐尽量少用 else , if - else 的方式可以改写成:

    if(condition){
        ...
        return obj;
    }

    // 接着写 else 的业务逻辑代码;

    说明:如果非得使用 if()…else if()…else… 方式表达逻辑,【强制】避免后续代码维
    护困难,请勿超过 3 层。
    正例:超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现,其中卫语句示例如下:

    public void today() {
        if (isBusy()) {
            System.out.println(“change time.”);
            return;
        }
        if (isFree()) {
            System.out.println(“go to travel.”); 
            return;
        }
        System.out.println(“stay at home to learn Alibaba Java Coding Guidelines.”);
        return;
    }

《阿里巴巴Java开发手册(终极版)》1-6之并发处理

编程规约 - 并发处理

修改项:第 6 项

  1. 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
    说明:资源驱动类、工具类、单例工厂类都需要注意。

  2. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。
    正例:

    public class TimerTaskThread extends Thread {
    public TimerTaskThread(){
        super.setName("TimerTaskThread"); ...
    }
| | 总字数统计:93.5k