(红色例子是反例 绿色例子是正例)
一、强制要求
_age $age),也不能以下划线或美元符号结束( age_ $age)。
nianling),更不允许直接使用中文的方式( 年龄)。
正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式 也要避免采用。
myName myAge)( MyName MyAge)
myname getname() )( myName getName() )
MAX_STUDENT_COUNT)( MAXSTUDENTCOUNT)
6、抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类 命名以它要测试的类的名称开始,以 Test 结尾。
使用 String args[]的方式来定义。)
定义为基本数据类型 Boolean isDeleted;的属性,它的方法也是 isDeleted(),RPC 阿里巴巴 Java 开发手册 ——禁止用于商业用途,违者必究—— 2 / 33 框架在反向解析的时候,“以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异 常。)
应用工具类包名为 com.alibaba.open.util、类名为 MessageUtils(此规则参考 spring 的框架结构))
AbstractClass“缩写”命名成 AbsClass;condition“缩写”命名成 condi,此类 随意缩写严重降低了代码的可阅读性。)
二、推荐
1、如果使用到了设计模式,建议在类名中体现出具体模式。
将设计模式体现在名字中,有利于阅读者快速理解架构设计思想。
public class OrderFactory;
public class LoginProxy;
public class ResourceObserver;)
接口方法签名:void f(); 接口基础常量表示:String COMPANY = "alibaba";)( 接口方法定义:public abstract void f();)
三、 接口和实现类的命名有两套规则:
CacheServiceImpl 实现 CacheService 接口。 )
AbstractTranslator 实现 Translatable。)
四、参考
枚举其实就是特殊的常量类,且构造方法被默认强制是私有。 ( 枚举名字:DealStatusEnum,成员名称:SUCCESS / UNKOWN_REASON。)
2、各层命名规约:
A) Service/DAO 层方法命名规约
1) 获取单个对象的方法用 get 做前缀。
2) 获取多个对象的方法用 list 做前缀。
3) 获取统计值的方法用 count 做前缀。
4) 插入的方法用 save(推荐)或 insert 做前缀。
5) 删除的方法用 remove(推荐)或 delete 做前缀。
6) 修改的方法用 update 做前缀。
B) 领域模型命名规约
1) 数据对象:xxxDO,xxx 即为数据表名。
2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。
3) 展示对象:xxxVO,xxx 一般为网页名称。
4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。