基本的命名规约:
命名规约主要用来限制java中的变量以及函数名,使程序有更好的可读性。
-
代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
反例: _name / __name / $Object / name_ / name$ / Object$
-
代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 (说明:正确的英文拼写和语法可以让阅 读者易于理解,避免歧义。注意,即使纯拼音命名方式 也要避免采用。)
反例: DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3 正例: alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。
-
类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:(领域模型的相关命名)DO / DTO / VM/VO等。
正例: UserService / UserDTO / Product / TcpUdpDeal / TaPromotion 反例: Users / macroPolo / UserDto / XMLService / TCPUDPDeal / TAPromotion
-
类名尽量要以英文名词单数形式命名,类名不要加Info,Table,Detail等后缀;但是类名如果有复数含义,类名可以使用复数形式。
正例: Order / OrderServcie / Item / Address / StringUtils 反例: OrderInfo / Users / UserTable
-
方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从 驼峰形式,并且方法名要以英文动 词开头,变量为英文名词形式并区分好单、复数。
正例: localValue / getHttpMessage() / inputUserId /update
-
常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
正例: MAX_STOCK_COUNT 反例: MAX_COUNT
OOP规约原则
-
【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可
-
【强制】所有的覆写方法,必须加@Override 注解。
-
【强制】相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。 说明:可变参数必须放置在参数列表的最后。(提倡同学们尽量不用可变参数编程)
正例:public User getUsers(String type, Integer... ids)
-
【强制】外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生 影响。接口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么。
-
【强制】不能使用过时的类或方法。
-
【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。
正例: "test".equals(object); 反例: object.equals("test"); 说明:推荐使用java.util.Objects#equals (JDK7引入的工具类) -
【强制】所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。
-
【强制】关于基本数据类型与包装数据类型的使用标准如下:
1) 所有的POJO类属性必须使用包装数据类型。 2) RPC方法的返回值和参数必须使用包装数据类型。 3) 所有的局部变量【推荐】使用基本数据类型。
注释规约:
-
【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用格式,不得使用 //xxx 方式。
说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注 释;在 IDE 中,工程调用方法时, 不进入方法即可悬浮提示方法、参数、返回值的意义,提高 阅读效率。 -
【强制】所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释、除了返回值、参数、 异常说明外,还必须指出该方法做什么事情,实现什么功能。 说明:对子类的实现要求,或者调用注意事项,请一并说明。
-
【强制】所有的类都必须添加创建者信息。
-
【强制】方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用注释,注意与代码对齐。
-
【强制】所有的枚举类型字段必须要有注释,说明每个数据项的用途。



