基本
- 编码风格向阿里Java开发手册靠齐
- 代码编码逻辑是否清晰
- 合理有效的注释
- 阿里代码检测插件是否有问题
- 是否存在冗余代码
- 是否存在潜在NPE
- 防御式编程
- Optional
- 日志打印规范
- 业务划分是否清晰合理、有没有互相耦合
- 有没有maven依赖冲突
- 资源释放
- 统一错误码
- 异常的处理
- 直接返回
- 抛出异常
- 重试处理
- 恢复处理
- 熔断处理
- 降级处理
- 关闭业务
- 表设计是否合理(三大范式)
- 单元测试是否覆盖
- 大型复杂流程程序必须提供流程图、时序图
初级
- 重构-代码的坏味道
- 数据库索引设计,sql索引是否生效
- 代码是否可以使用设计模式或者设计模式是否过度设计
- if/else 过多采用 策略模式
- 中间件使用是否最佳实践
- 线程池使用、参数是否正确、是否业务隔离
- 如果使用锁,锁范围、粒度是否合适
- 事务处理:是否需要事务,事务是否生效(类内部调用)
进阶
性能优化
- 需要缓存的地方是否添加缓存
- 乐观锁代替悲观锁
- 慢操作考虑异步形式
- 多接口聚合采用多线程加速
- 手动回收垃圾
数据一致性
- 是否需要支持幂等性
- 分布式事务
- 业务是否需要原子性(分布式锁)
- 异步操作、接口调用失败是否有补偿措施
- 接口调用、快速失败、多次重试
- 缓存一致性问题
待续未完、欢迎建议和补充