一、命名规范(核心要点)
- 命名四要素:清晰性 > 描述性 > 一致性 > 简洁性
反例:int a; → 正例:int studentCount; - 典型场景:
类名:UpperCamelCase(OrderService)
方法名:lowerCamelCase(getUserInfo())
常量:全大写+下划线(MAX_RETRY_TIMES) - 避坑指南:
禁用拼音混合(反例:DaZhePromotion)
禁用魔法值(反例:if(status == 3) → 用常量STATUS_DELETED)
二、注释规范(黄金法则)
- 三要三不要:
要解释"为什么",不要描述"是什么"。
要记录缺陷(// TODO: 需优化性能),不要粉饰烂代码。
要说明常量背后的故事(// 超时30秒(根据用户调研结果))。 - 注释层级:
类/文件级:说明整体设计。
方法级:输入/输出/异常说明。
代码段:解释复杂逻辑
三、方法设计(最佳实践)
- SOLID原则:单一职责(一个方法只做一件事)参数处理:public void updateUser(UserDTO user)
- 参数规范:最多5个参数,超限需封装对象禁用参数作为局部变量
- 返回值处理:返回空集合而非null(return Collections.emptyList())Optional使用场景:明确可能无返回值时
四、控制结构(核心技巧)
- 条件语句优化:// 卫语句示例 if (obj == null) return; if (status != ACTIVE) return; // 正常逻辑
- 表驱动法:Map
statusMap = Map.of( 1, "待支付", 2, "已发货" ); - 复杂度控制:方法圈复杂度 ≤ 10(超限需拆分)
五、防御式编程(关键点)
- 断言使用:assert connection != null : "数据库连接未初始化";
- 异常处理:校验参数有效性:Objects.requireNonNull()优先使用受检异常明确错误类型
六、代码审查清单
- 命名检查:是否通过名称就能理解用途?是否遵循团队规范?
- 方法检查:是否超过50行?参数是否超过5个?
- 注释检查:是否有未完成的TODO?神秘数值是否未解释?
七、性能优化提示
- 字符串处理:用StringBuilder代替+操作
- 集合初始化:指定初始容量:new ArrayList<>(100)
- 流式处理:及时关闭资源:try-with-resources
学习路线建议
- 每日一练:重构1个旧方法(命名/注释/复杂度)
- 每周精读:分析JDK源码或Spring框架核心类
- 每月实践:实现一个设计模式(如工厂模式)
附:推荐书单
《代码整洁之道》- Robert C. Martin
《Effective Java》- Joshua Bloch
《重构》- Martin Fowler
可通过对比文件中的正反例代码加深理解,建议结合IDE的代码质量检测插件(如SonarLint)进行实践练习。