控制语句
其它相关文章
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(工程结构)
[强制] 在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使空代码。
[强制] 在if/else/for/while/do语句中必须使用大括号。即使只有一行代码,避免采用单行的编码方式:
if (condition) statements;
-
[强制] 在高并发场景中,避免使用 ”等于 ”判断作为中或退出的条件。
- 说明: 如果并发控制没有处理好,“击穿”的情况,使用大于或小于区间判断条件来代替。
- 反例:判断剩余奖品数量等于0时,终止发放奖品,但因为并处理错误导致数量瞬间变成了负数, 这样的话活动无法终止。
-
[推荐] 表达异常的分支时,少用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; }
-
[推荐] 除常用方法(如getXxx/isXxx)等外,不要在条件判断中执行其它复杂的语句,将复杂逻辑判断的结果赋值给一个有意义的布尔变量名,以提高可读性。