代码审查检查清单
概述
代码审查检查清单是用于系统性评估代码质量的标准列表,确保在审查过程中覆盖所有关键方面。
关键内容
- 代码可读性检查:
- 代码结构是否清晰
- 变量和函数命名是否具有描述性
- 代码是否遵循团队的编码规范
-
是否存在不必要的复杂逻辑
-
安全问题检查:
- 验证和授权是否正确实施
- 是否有潜在的数据泄露风险
- 输入校验是否到位
- 敏感信息(如API密钥)是否被硬编码
- 检查是否存在硬编码的凭据或密钥
- 验证所有用户输入是否经过校验
- 确认使用参数化查询防止SQL注入
- 验证所有修改状态的操作都有CSRF防护
- 检查是否使用正确转义防止XSS攻击
- 确保受保护的端点有身份验证检查
- 验证资源访问有适当的授权检查
- 检查密码是否使用安全哈希算法(如bcrypt、argon2)
- 确认日志中不包含敏感数据
-
验证是否强制使用HTTPS
-
性能问题检查:
- 是否存在高复杂度的算法(如N+1查询)
- 内存使用是否高效
- 数据库查询是否经过优化
- 是否存在可能导致性能瓶颈的操作
- 确保没有N+1查询问题
- 验证索引使用是否合理
- 检查在有价值的地方是否做了缓存
- 确认主线程上没有阻塞操作
- 验证是否正确使用async/await
- 检查大数据集是否已分页
- 确认数据库连接已做连接池处理
- 验证正则表达式已优化
- 确保没有不必要的对象创建
-
检查是否存在内存泄漏
-
测试覆盖检查:
- 是否有足够的单元测试
- 边界情况是否被覆盖
- 错误处理路径是否被测试
- 集成测试是否完整
- 确认已编写充分的单元测试
- 验证是否覆盖了边界情况
- 检查是否测试了错误场景
- 确认有必要的集成测试
- 验证测试覆盖率是否大于80%
- 检查是否存在不稳定测试
- 确认外部依赖已做mock处理
-
验证测试名称是否清晰明了
-
设计模式检查:
- 是否遵循SOLID原则
- 设计是否易于扩展和维护
- 是否存在重复代码
- 模块化程度是否适当
- 确保函数少于50行以保持可读性
- 验证变量命名是否清晰易懂
- 验证注释是否解释了WHY而不是WHAT
- 确保生产环境中没有console.log
- 检查是否有类型检查(TypeScript/JSDoc)
- 确认是否正确应用设计模式
- 检查代码是否具备自解释性
来源
- code-reviewer — 详细说明审查清单的使用方式
- 代码审查检查清单 — 全面的代码审查检查清单