包名全部小写

类名的命名要遵循首字母大写原则

的名字必须由大写字母开头而单词中的其他字母均为小写;

如果一个类名称是由多个单词组成,则每个单词的首字母均应为大写例如ModelWhAction如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来代表对象的,所以在命名类时应尽量选择名词

类名、接口名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:DO/BO/DTO/VO/AO/PO/UID等。

方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。

常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长

定义数组时,类型与中括号紧挨相连

int[] array = new int[10];

int array[] = new int[10]; // 不建议这样写

抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类命名以它要测试的类的名称开始,以 Test 结尾

AbstractService/CommonException/DemoTest

如果模块、 接口、类、方法使用了设计模式,在命名时需体现出具体模式

说明:将设计模式体现在名字中,有利于阅读者快速理解架构设计理念。
正例:public class OrderFactory;
public class LoginProxy;
public class ResourceObserver;

对于 Service 和 DAO 类,基于 SOA的理念,暴露出来的服务一定是接口,内部的实现类用Impl 的后缀与接口区别。

正例:CacheServiceImpl实现CacheService接口

如果是形容能力的接口名称,取对应的形容词为接口名(通常是–able 的形容词)。

正例:JDK中的Comparable接口

在long或者Long赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解。

明:Long a = 2l;写的是数字的 21,还是 Long 型的 2 ??

不允许任何魔法值(即未经预先定义的常量)直接出现在代码中

正例:

public static final ORDER_REDIS_KEY_PREFIX = "orderId_";
String orderRedisKey = ORDER_REDIS_KEY_PREFIX + orderId;
反例:

String redisKey = "orderId_" + orderId;

枚举类名带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开。

正例:枚举名字为ProcessStatusEnum的成员名称:SUCCESS / UNKNOWN_REASON