目录
1. 命名规范
(1)定义变量最好不要以 "_" 或 "$" 开头,也不要以它们为结尾;
例如 _name,name_,$name,name$ 都是不推荐的。
(2)变量不要中英文混合使用,也最好不要使用中文拼音,应当见名知意;
例如 daZhe(打折),pingFen(评分) 不易于阅读,容易其他人造成歧义。
(3)定义类要采用驼峰命名法,不要使用 "_";领域模型的相关类名全大写,例如 DTO,DO,VO等;
正确示例:UserMapper,UserService,UserDO,UserDTO;
错误示例:userMapper,userService,UserDo,UserDto;
(4)方法名,参数名,成员变量,局部变量也要采用驼峰明明,首字母小写;
正确示例:getHttpMessage(),inputUserId,localValue。
(5)常量一定要全部大写,多个单词中间用 "_" 分隔开,不要嫌名字长,要表达完整;
正确示例:MAX_COUNT,MAX_SIZE,DEFAULT_VALUE。
(6)抽象类使用 Abstract 或 Base 开头,异常类以 Exception 结尾,测试类的类名要以被测试的类名+Test结尾;
正确示例:AbstractUser,BaseUser,UserNotFoundException,UserMapperTest。
(7)定义数组类型时,把[]放在变量类型的后面,而不要放在变量的后面;
正确示例:String[] arg;
错误示例:String arg[];
(8)实体类中的布尔类型变量前面不要加 "is",否则解析可能会序列化错误;
正确示例:Success;
错误示例:isSuccess;
(9)定义包名全部用小写,单词之间用 . 分隔开,单词不要使用复数;定义类名时单词可以使用复数。
正确示例包名:com.alibaba.open.util
正确示例类名:MessageUtils,MessageUtil,
(10)接口中的方法不要有任何的修饰符,public 也不要加,保持代码整洁;
正确示例:void save(),int insert();
错误示例:public void save(),public int insert();
(11)接口采用正常的驼峰命名法,实现类在接口的基础上加上 "Impl";
正确示例:UserService与UserServiceImpl,CacheService与CacheServiceImpl;
(12)定义枚举类建议类名后面加上Enum,枚举类成员全部用大写表示,单词中间用 "_" 分隔开。
正确枚举类名示例:MonthEnum;
正确枚举类变量示例:DEFAULT_VALUE,MAX_SIZE,MIN_SIZE,SUCCESS,FAIL;
(13)Service/DAO方法命名规范
获取单个对象:get 做前缀;
获取多个对象:list 做前缀;
获取统计值:count 做前缀;
插入方法:save/insert 做前缀;
删除方法:remove/delete 做前缀;
修改方法:update 做前缀;
(14)领取模型命名规范
数据对象:xxxDO,xxx即为表名;
数据传输对象:xxxDTO,xxx为业务领取相关的名称;
展示对象:xxxVO,xxx一般为网页名称;
POJO是对DO/DTO/VO/BO的统称,禁止命名为 xxxPOJO;
2. 常量定义
(1)long或Long 初始赋值时,必须使用大写 L,因为小写的 l 容易和数字1 产生混肴;
正确示例:Long num = 2L;
错误示例:long num = 2l,极容易将num 认为是21,但实际上定义的是2;
(2)不允许出现未经定义的变量只出现在代码中;
错误示例 String key = "ID" + tradeId,这样定义容易造成内存溢出,不允许出现。
(3)不要使用一个常量类维护所有常量,应该对常量进行分类维护,后期排查方便,维护也方便。
(4)如果变量值仅在一个范围内变化用 Enum 类。如果还带有名称之外的延伸属性,必须 使用 Enum 类,下面正例中的数字就是延伸信息,表示星期几。
正确示例:public Enum{ MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7);}