name: code-review description: 系统性地进行代码审查,关注代码质量、安全性、可维护性等方面
代码审查技能
概述
代码审查是保证代码质量的重要环节。本技能提供系统化的审查方法和检查清单。
启用时机: 审查 PR 或检查代码质量时
声明: "我正在使用 code-review 技能来进行代码审查"
审查维度
1. 功能正确性
- 代码是否实现了预期功能?
- 边界情况是否处理?
- 错误处理是否完善?
2. 代码质量
- 命名是否清晰有意义?
- 函数是否足够小且单一职责?
- 是否有重复代码?
- 复杂度是否可接受?
3. 安全性
- 是否有 SQL 注入风险?
- 是否有 XSS 风险?
- 敏感数据是否正确处理?
- 权限检查是否到位?
4. 性能
- 是否有不必要的循环?
- 数据库查询是否优化?
- 是否有内存泄漏风险?
5. 可维护性
- 代码是否易于理解?
- 是否有适当的注释?
- 是否遵循项目规范?
审查流程
1. 了解上下文
# 查看 PR 描述和关联 issue
gh pr view <pr-number>
# 查看变更文件列表
git diff --name-only main...feature-branch
2. 整体浏览
# 查看整体 diff
git diff main...feature-branch
# 统计变更规模
git diff --stat main...feature-branch
3. 逐文件审查
# 查看单个文件的变更
git diff main...feature-branch -- path/to/file
4. 运行测试
# 确保测试通过
npm test
# 检查覆盖率
npm run test:coverage
反馈模板
建议(非强制)
**建议**: 考虑使用 `Array.find()` 替代这里的循环
问题(需要解决)
**问题**: 这里没有处理 `null` 的情况,可能导致运行时错误
赞扬
**赞**: 这个抽象做得很好,提高了代码的可复用性
常见问题检查清单
JavaScript/TypeScript
- 是否使用
===而非==? - Promise 是否正确处理?
- 是否避免了
any类型?
React
- 组件是否过大需要拆分?
- useEffect 依赖是否正确?
- key 是否正确使用?
API
- 输入是否验证?
- 响应格式是否一致?
- 错误码是否规范?
审查输出格式
## Code Review: PR #123
### 总体评价
[通过/需要修改/需要重构]
### 亮点
- ...
### 需要修改
1. **file.ts:42** - [问题描述]
2. **file.ts:78** - [问题描述]
### 建议(可选)
1. **file.ts:100** - [建议描述]
### 测试建议
- [ ] 需要增加 XXX 场景的测试
注意事项
- 保持友善和建设性
- 关注代码而非人
- 解释为什么而非只说什么
- 区分必须修改和建议