缺少规范意识
缺少规范意识, 缺少规范意识, 缺少规范意识,说三遍
多余的类引用
IDEA快捷键:Ctrl+Alt+O,可自动删除多余引用
java引入使用 import …*
参考配置:
单行代码长度超过120个字符
参考配置:
定义了未使用的变量、对象
代码不格式化
快捷键:Ctrl+Alt+L,自动格式化代码
多余的分号、括号
保留无效/弃用的代码/空方法
注释掉的内容或临时代码等
属性无必要的文档注释
汉语博大精深,定义同一个意义的属性,不同的人可能用不同的单词,为避免歧义,最好加上注释说明
错误注释、无注释
出于【迎合】文档规范,有的同学会复制其他类的注释给另一个类,对应的说明信息、作者、时间等要素也奉行拿来主义不做改动
单词拼写错误、错别字
复杂交易无必要的日志打印
排查定位问题时将无从下手
Logger使用不是自身类
复制的锅,不怪我
日志打印参数时使用字符串拼接、System.out.println
应使用日志类配合占位符
不太恰当的方法使用
易引发NPE、逻辑取反等
//反例,存在NPE的集合判空
if (req.getBillIds().size() == 0) {
//todo
}
//存在NPE的字符串判空
if (req.getAcctNo.isEmpty()) {
//todo
}
// ---------------------------分割线
//正例
if (CollectionUtils.isEmpty(req.getBillIds())) {
//todo
}
if (StringUtils.isEmpty(req.getAcctNo)) {
//todo
}
if (ObjectUtils.isEmpty(obj)) { // 可通用于集合、字符串、数组等的判空
//todo
}
//----------------------------分割线
//反例,非空判断,容易丢失的惊叹号
if (!CollectionUtils.isEmpty(req.getBillIds())) {
//todo
}
//正例,易于理解的非空判断
if (CollectionUtils.isNotEmpty(req.getBillIds())) {
//todo
}
BigDecimal
比较相等
//反例
if (new BigDecimal("1").equals(new BigDecimal("1.0"))) {
//todo
}
//正例
if (new BigDecimal("1").compareTo(new BigDecimal("1.0")) == 0) {
//todo
}
类不分包存放
各功能模块的类全在一个包下
复杂方法/交易缺少必要的注释
我是谁?我在哪?我要干什么?
日志、业务异常跑错中占位符数量与所传参数不匹配
避免出现万能组件、万能BO、过长的类和方法
或者一个项目的所有代码全写在一个类里?
中英符号混用
通常是在日志打印、消息说明中出现,通常中文符号比英文符号【宽】一些,英文符号出现在中文中时会显得【瘦小】
复制粘贴式开发
对于他人已经产出的不规范代码,仍然效仿或直接复制过来修改
魔法值的使用
- 有枚举的用枚举
- 无枚举的定义静态属性
其他
以上内容仅供参考,还请批评指正!