Files
logseq/pages/代码审查.md

1.3 KiB

  • 审查清单
    • 代码结构
      • 超长代码
      • 代码层次嵌套过深
      • 函数入参是否过多
      • 循环条件需要有跳出点
      • if是否有对应else
      • 是否有重复代码
    • 代码安全性
      • I/O流是否关闭
      • 资金计算使用Double
      • 是否有超大临时对象
      • 线程池参数
      • 异常处理
      • 日志记录
      • 并发问题
      • 参数检查
      • 远程服务出入参实现Selialization并自定义serialVersionUUID
      • 是否依赖SNAPSHOT版本类库
    • 代码性能
      • 长SQL
      • SQL索引
      • 成熟类库替代自己实现的代码
      • 考虑单例模式
      • 考虑线程池
      • 考虑NIO
      • 考虑锁优化
    • 代码注释
      • 类和方法注释
      • 注释是否表达准确
      • 是否存在FIXME和TODO
      • 是否包含边界值及对异常情况说明
    • 单元测试
      • 是否有可测试性
      • 新代码单元测试
      • 单元测试是否覆盖所有场景
    • 代码优化
      • 枚举替代常量
      • 是否包含魔法值
      • 使用Option替代NPE检查
      • 用Stream替代for循环
      • 使用设计模式
    • 其他
      • 代码逻辑
      • 业务功能
      • 可读性、可测试性
  • 审查工具
    • Phabricator
    • Gerrit
    • Code Stiker
  • 关注改动点
  • 日常审查
  • 一次审查代码量200-400
  • image.png