java开发中常见的不良习惯

本文强调了代码规范的重要性,列举了常见的代码不规范问题,如多余的引用、未使用的变量、不格式化的代码、错误注释等,并提供了相应的解决建议,如使用IDE快捷键进行优化、避免NPE、正确使用日志及比较操作。同时提醒开发者注意类的组织结构、注释清晰性和避免复制粘贴式开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缺少规范意识

缺少规范意识, 缺少规范意识, 缺少规范意识,说三遍

多余的类引用

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、过长的类和方法

或者一个项目的所有代码全写在一个类里?

中英符号混用

通常是在日志打印、消息说明中出现,通常中文符号比英文符号【宽】一些,英文符号出现在中文中时会显得【瘦小】

复制粘贴式开发

对于他人已经产出的不规范代码,仍然效仿或直接复制过来修改

魔法值的使用
  • 有枚举的用枚举
  • 无枚举的定义静态属性
其他

以上内容仅供参考,还请批评指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值