代码审查助手
使用 AI 进行全面的代码审查和质量分析
实战级别40 分钟阅读
审查维度
全方位的代码审查分析
安全性审查
识别潜在的安全漏洞和风险
检查要点:
SQL 注入漏洞XSS 攻击防护身份验证缺陷敏感信息泄露权限控制问题加密算法使用
审查示例:
@src/auth/ 审查这个认证模块的安全性,重点检查身份验证、权限控制和敏感信息处理
常见发现:
- 密码未进行哈希处理
- 缺少 CSRF 保护
- JWT 密钥硬编码
- 用户输入未验证
性能分析
发现性能瓶颈和优化机会
检查要点:
算法复杂度数据库查询优化内存使用效率网络请求优化缓存策略资源加载
审查示例:
@src/api/ 分析这个 API 模块的性能,识别可能的瓶颈和优化点
常见发现:
- N+1 查询问题
- 缺少数据库索引
- 未使用连接池
- 大量同步操作
代码质量
评估代码的可维护性和可读性
检查要点:
代码结构清晰度命名规范注释完整性函数复杂度重复代码错误处理
审查示例:
@src/utils/ 评估这个工具模块的代码质量,包括可读性、可维护性和最佳实践
常见发现:
- 函数过于复杂
- 变量命名不清晰
- 缺少错误处理
- 存在重复代码
审查流程
系统化的代码审查工作流程
1
准备审查
确定审查范围和重点
关键行动:
- 明确审查目标(安全、性能、质量)
- 选择要审查的文件或模块
- 了解项目的技术栈和架构
- 准备审查清单和标准
@package.json @README.md 了解项目基本信息和技术栈
2
执行审查
使用 AI 进行全面的代码分析
关键行动:
- 逐个模块进行详细审查
- 关注关键功能和敏感操作
- 检查代码与最佳实践的符合度
- 识别潜在的问题和风险
@src/critical-module.js 进行全面的代码审查,包括安全性、性能和代码质量
3
生成报告
整理审查结果并生成报告
关键行动:
- 汇总发现的问题和建议
- 按优先级对问题进行分类
- 提供具体的修复建议
- 生成可执行的改进计划
基于审查结果生成详细的代码审查报告,包括问题分类、优先级和修复建议
4
跟踪改进
监督问题修复和改进实施
关键行动:
- 验证修复方案的有效性
- 检查是否引入新的问题
- 更新代码审查清单
- 记录经验教训
@src/fixed-module.js 验证修复后的代码是否解决了之前发现的问题
审查模板
针对不同场景的审查模板
新功能审查
审查新开发的功能模块
AI 提示词:
@src/new-feature/ 审查这个新功能的实现,重点关注: 1. 功能完整性和正确性 2. 安全性和权限控制 3. 性能和资源使用 4. 代码质量和可维护性 5. 测试覆盖率
关注重点:
功能正确性安全性性能可维护性测试覆盖
Bug 修复审查
审查 Bug 修复的代码变更
AI 提示词:
@src/bugfix.patch 审查这个 Bug 修复,确认: 1. 是否正确解决了原问题 2. 是否引入了新的问题 3. 修复方案是否合理 4. 是否需要添加测试用例
关注重点:
问题解决副作用检查方案合理性测试补充
重构代码审查
审查代码重构的质量
AI 提示词:
@src/refactored/ 审查重构后的代码,对比重构前后的差异: 1. 代码结构是否更清晰 2. 性能是否有改善 3. 功能是否保持一致 4. 是否遵循最佳实践
关注重点:
结构改善性能提升功能一致性最佳实践
第三方集成审查
审查第三方库或服务的集成
AI 提示词:
@src/integration/ 审查第三方服务集成,检查: 1. 集成方式是否安全 2. 错误处理是否完善 3. 依赖管理是否合理 4. 是否有备用方案
关注重点:
安全集成错误处理依赖管理容错设计
自动化代码审查
将 AI 代码审查集成到开发流程中
Pre-commit Hook
在代码提交前自动审查
配置示例:
#!/bin/bash # .git/hooks/pre-commit echo "正在进行 AI 代码审查..." changed_files=$(git diff --cached --name-only --diff-filter=ACM | grep -E "\.(js|ts|py|java)$") if [ -n "$changed_files" ]; then for file in $changed_files; do echo "审查文件: $file" gemini "@$file" "快速审查这个文件的代码质量和潜在问题" done fi
主要优势:
- 提交前发现问题
- 保持代码质量
- 减少后期修复成本
Pull Request 审查
在 PR 中自动进行代码审查
配置示例:
name: AI Code Review on: pull_request: types: [opened, synchronize] jobs: ai-review: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: AI Code Review env: GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }} run: | git diff origin/main...HEAD --name-only | while read file; do gemini "@$file" "审查这个文件的变更,提供改进建议" done
主要优势:
- 自动化审查流程
- 一致的审查标准
- 减少人工审查时间
质量指标
衡量代码质量的关键指标
代码覆盖率
> 80%测试覆盖的代码比例
@tests/ @src/ 分析测试覆盖率,识别未覆盖的关键代码路径
圈复杂度
< 10代码的复杂程度
@src/ 计算各函数的圈复杂度,识别过于复杂的函数
重复代码率
< 5%重复代码的比例
@src/ 检测重复代码,建议重构和抽取公共函数
技术债务
持续减少需要重构的代码量
@src/ 评估技术债务,制定重构优先级和计划