Java 编码规范7(编程规约-控制语句)

时间:2022-03-07 01:43:20

控制语句


其它相关文章
Java 编码规范1(编程规约-命名风格)
Java 编码规范2(编程规约-常量定义)
Java 编码规范3(编程规约-代码格式)
Java 编码规范4(编程规约-OOP规约)
Java 编码规范5(编程规约-集合处理)
Java 编码规范6(编程规约-并发处理)
Java 编码规范7(编程规约-控制语句)
Java 编码规范8(编程规约-注释规约与其它)
Java 编码规范9(异常日志)
Java 编码规范10(单元测试)
Java 编码规范11(安全规约)
Java 编码规范12(MySQL-建表规约)
Java 编码规范13(MySQL-索引规约)
Java 编码规范14(MySQL-SQL语句与ORM映射)
Java 编码规范15(工程结构)


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

  2. [强制] 在if/else/for/while/do语句中必须使用大括号。即使只有一行代码,避免采用单行的编码方式:if (condition) statements;

  3. [强制] 在高并发场景中,避免使用 ”等于 ”判断作为中或退出的条件。

    • 说明: 如果并发控制没有处理好,“击穿”的情况,使用大于或小于区间判断条件来代替。
    • 反例:判断剩余奖品数量等于0时,终止发放奖品,但因为并处理错误导致数量瞬间变成了负数, 这样的话活动无法终止。
  4. [推荐] 表达异常的分支时,少用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;
      }
  5. [推荐] 除常用方法(如getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。