规范
1.类名定义
类必须要有一定的注释信息
DO,VO,BO,DTO,DAO,TP,不需要遵循驼峰命名规范,都大写
DTO里面的类属性一定要使用包装数据类型(Double double),属性且不要加默认值
POJO必须要定义String()方法
- AlarmDetailsDTO ✔️
- AlarmDetailsDto X
1.枚举定义
枚举命名结尾Enum
IndexConfigTypeEnum
枚举定义中常用的方法,基于code去寻找枚举
public static IndexConfigTypeEnum getIndexConfigTypeEnumByType(int type) {
for (IndexConfigTypeEnum indexConfigTypeEnum : IndexConfigTypeEnum.values()) {
if (indexConfigTypeEnum.getType() == type) {
return indexConfigTypeEnum;
}
}
return DEFAULT;
}
2.变量
驼峰命名,多个单词首字母大写
某些特殊语义,需要合并第二个字母非大写
例如
Heartbeat
2.常量
常量应该都是大写,多个单词用_间隔
不允许魔法值直接出现在代码中,常量必须要提前定义好
标准用法
FILE_UPLOAD_DIC
INDEX_CAROUSEL_NUMBER
MALL_VERIFY_CODE_KEY
GOODS_SEARCH_PAGE_LIMIT // 限制
ORDER_SEARCH_PAGE_LIMIT
SELL_STATUS_UP = 0; // 商品上架状态
SELL_STATUS_UP = 1; // 商品下架状态
3.包名
统一使用小写
.分隔,且是自然语义的单词
4.布尔类型变量
命名不要加is,防止序列化异常
Boolean success
5.变量命名的含义
一定要带业务含义的变量名称
不能String s = “”没有任何含义的定义
6.方法的参数不应该超过5个
7.方法提的行数不能超过70行
8.强转对象前要判断状态
9.switch
switch中必须要有一个default语句,即使什么也不干
且switch判断参数中如果是String的话,必须要先判断一下是否是null
10.if条件判断
if的条件判断中不要执行复杂的语句,
将复杂结果的判断逻辑复制给一个布尔变量
且判断条件个数最好不超过3个
且尽量避免用取反符号
11.try-catch-finally
finally 中不要执行return语句
12.线程
不允许显示自己创建线程并执行,一定要用线程
ThreadPoolExecutor去创建线程池
线程池中使用了ThreadLocal的线程对象,一定要及时清理
13.及时清理不使用的代码块和配置
14.不要使用java.sql.Date,Timestamp,Time类
15.不要使用过时的类和方法
16.静态成员,静态方法一定使用类名.调用,避免使用实例来执行
17.unix时间戳
用System.currentTimeMills()
不要用new Date().getTIme()
原创:做时间的朋友