规范
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()
原创:做时间的朋友
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2021-06-19 第四部分-并发编程案例分析4:高性能数据库连接池HikariCP