团队质量门禁
质量门禁是确保代码质量的关键机制。本指南介绍如何使用 Claude Code 建立和维护团队的质量标准。
什么是质量门禁
质量门禁是一组必须满足的标准,代码只有通过这些标准才能合并到主分支。
常见的质量门禁
- 代码审查通过
- 所有测试通过
- 代码覆盖率达标
- 静态分析无错误
- 性能指标达标
- 安全扫描通过
- 文档完整
建立质量门禁
定义质量标准
明确团队的质量标准:
我们的质量标准:
代码质量:
- ESLint 无错误
- TypeScript 无类型错误
- 代码复杂度 < 10
- 函数长度 < 50 行
测试:
- 单元测试覆盖率 > 80%
- 集成测试覆盖核心流程
- E2E 测试覆盖关键场景
性能:
- 页面加载时间 < 2s
- API 响应时间 < 200ms
- 打包大小增长 < 10%
安全:
- 无已知安全漏洞
- 依赖包安全扫描通过
- 敏感信息不提交
文档:
- 公共 API 有文档
- 复杂逻辑有注释
- README 保持更新创建检查清单
为代码审查创建检查清单:
markdown
## 代码审查清单
### 功能性
- [ ] 功能按需求实现
- [ ] 边界情况处理正确
- [ ] 错误处理完整
### 代码质量
- [ ] 代码清晰易读
- [ ] 命名规范一致
- [ ] 无重复代码
- [ ] 遵循设计模式
### 测试
- [ ] 单元测试覆盖充分
- [ ] 测试用例有意义
- [ ] 测试可维护
### 性能
- [ ] 无明显性能问题
- [ ] 资源使用合理
- [ ] 适当的优化
### 安全
- [ ] 输入验证完整
- [ ] 无安全漏洞
- [ ] 敏感信息保护
### 文档
- [ ] 代码注释充分
- [ ] API 文档完整
- [ ] README 更新使用 Claude Code 进行质量检查
自动化代码审查
让 Claude 进行初步审查:
作为代码审查员,审查这个 PR:
文件:
@src/auth/login.ts
@src/auth/register.ts
使用我们的审查清单:
@docs/review-checklist.md
输出:
- 问题列表(按严重程度)
- 改进建议
- 是否建议合并代码质量检查
检查代码质量:
检查这个文件的代码质量:
@src/services/user.ts
关注:
- 代码复杂度
- 函数长度
- 代码重复
- 命名规范
- 类型安全测试覆盖率检查
检查测试覆盖:
分析测试覆盖率:
目标文件:
@src/services/user.ts
测试文件:
@src/services/user.test.ts
检查:
- 覆盖率是否达标(> 80%)
- 是否覆盖边界情况
- 是否覆盖错误处理
- 测试质量如何性能检查
检查性能问题:
分析性能问题:
@src/components/ProductList.tsx
关注:
- 不必要的重渲染
- 大数据量处理
- 内存泄漏风险
- 网络请求优化安全检查
检查安全问题:
进行安全审查:
@src/api/users.ts
检查:
- 输入验证
- SQL 注入风险
- XSS 风险
- 认证授权
- 敏感信息处理质量门禁流程
提交前检查
在提交代码前进行检查:
准备提交代码,进行提交前检查:
1. 运行 linter
2. 运行测试
3. 检查代码覆盖率
4. 检查类型错误
5. 检查构建是否成功
如果所有检查通过,创建提交PR 创建检查
创建 PR 时进行检查:
为当前分支创建 PR:
1. 生成 PR 描述
2. 运行完整测试套件
3. 生成测试覆盖率报告
4. 运行安全扫描
5. 检查文档完整性
如果所有检查通过,创建 PR合并前检查
合并前的最终检查:
准备合并 PR #123:
1. 确认所有审查意见已解决
2. 确认 CI/CD 通过
3. 确认无合并冲突
4. 确认分支是最新的
5. 运行最终测试
如果所有检查通过,执行合并自动化质量门禁
Git Hooks
使用 Git hooks 自动化检查:
设置 pre-commit hook:
检查项:
- 运行 ESLint
- 运行 Prettier
- 运行类型检查
- 运行单元测试
如果任何检查失败,阻止提交设置 pre-push hook:
检查项:
- 运行完整测试套件
- 检查测试覆盖率
- 运行构建
- 检查打包大小
如果任何检查失败,阻止推送CI/CD 集成
在 CI/CD 中集成质量检查:
yaml
# .github/workflows/quality-check.yml
name: Quality Check
on: [pull_request]
jobs:
quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Type check
run: npm run type-check
- name: Test
run: npm run test:coverage
- name: Check coverage
run: |
COVERAGE=$(cat coverage/coverage-summary.json | jq '.total.lines.pct')
if (( $(echo "$COVERAGE < 80" | bc -l) )); then
echo "Coverage $COVERAGE% is below 80%"
exit 1
fi
- name: Build
run: npm run build
- name: Security audit
run: npm audit --audit-level=moderate自动化审查
使用 Claude Code 自动化审查:
创建自动审查脚本:
功能:
1. 获取 PR 的更改
2. 使用 Claude 审查代码
3. 生成审查报告
4. 发布审查评论
审查重点:
- 代码质量
- 潜在 bug
- 性能问题
- 安全问题
- 最佳实践质量指标
定义指标
定义可衡量的质量指标:
质量指标:
代码质量:
- 代码复杂度平均值 < 5
- 代码重复率 < 3%
- 技术债务比率 < 5%
测试:
- 单元测试覆盖率 > 80%
- 集成测试覆盖率 > 60%
- E2E 测试覆盖率 > 40%
性能:
- 页面加载时间 < 2s
- API P95 响应时间 < 200ms
- 打包大小 < 500KB
可靠性:
- Bug 率 < 1%
- 生产事故 < 1 次/月
- 平均修复时间 < 4 小时监控指标
持续监控质量指标:
生成质量报告:
时间范围:最近 30 天
包含:
- 代码质量趋势
- 测试覆盖率趋势
- Bug 数量趋势
- 性能指标趋势
- 技术债务趋势
输出格式:Markdown 报告改进计划
根据指标制定改进计划:
分析质量报告,制定改进计划:
当前问题:
- 测试覆盖率下降到 75%
- 代码复杂度上升
- Bug 率增加
改进计划:
1. 提高测试覆盖率到 85%
2. 重构复杂模块
3. 加强代码审查
4. 增加自动化测试
时间表:2 个月团队协作
统一标准
确保团队成员理解和遵循标准:
创建团队质量指南:
内容:
- 代码规范
- 测试要求
- 审查流程
- 质量标准
- 最佳实践
格式:易于理解和查阅
位置:docs/quality-guide.md代码审查文化
建立良好的代码审查文化:
代码审查原则:
1. 建设性反馈
- 指出问题的同时提供解决建议
- 使用友好的语气
- 关注代码而非个人
2. 及时审查
- 24 小时内完成审查
- 优先审查阻塞性 PR
3. 双向学习
- 审查者学习新知识
- 作者接受反馈改进
4. 自动化优先
- 自动化检查格式和风格
- 人工审查关注逻辑和设计知识分享
分享质量实践:
组织质量分享会:
主题:
- 代码质量最佳实践
- 测试策略
- 性能优化技巧
- 安全编码规范
形式:
- 每周分享会
- 案例分析
- 实践演示持续改进
回顾和反思
定期回顾质量实践:
季度质量回顾:
回顾内容:
- 质量指标达成情况
- 质量门禁有效性
- 团队反馈
- 改进建议
输出:
- 回顾报告
- 改进计划
- 标准更新工具优化
优化质量工具:
评估和优化质量工具:
当前工具:
- ESLint
- Jest
- Cypress
- SonarQube
评估维度:
- 有效性
- 易用性
- 性能
- 维护成本
输出:
- 工具评估报告
- 优化建议
- 新工具推荐标准演进
随着项目发展演进标准:
更新质量标准:
原因:
- 项目规模扩大
- 技术栈升级
- 团队成长
更新内容:
- 提高测试覆盖率要求
- 增加性能指标
- 更新代码规范
- 增加安全检查
生效时间:下个迭代常见问题
问题 1:标准过于严格
解决:
- 根据项目实际情况调整
- 区分核心标准和建议标准
- 渐进式提高标准
问题 2:检查耗时过长
解决:
- 优化检查流程
- 并行执行检查
- 使用增量检查
- 缓存检查结果
问题 3:团队抵触
解决:
- 解释标准的价值
- 收集团队反馈
- 共同制定标准
- 提供培训和支持
问题 4:标准不一致
解决:
- 文档化所有标准
- 自动化检查
- 定期审查和更新
- 统一工具配置
最佳实践
- 标准明确可衡量
- 自动化优先
- 持续监控和改进
- 团队共同参与
- 平衡质量和效率
- 关注核心质量指标
- 建立良好的审查文化
- 定期回顾和调整
总结
有效的质量门禁可以:
- 确保代码质量
- 减少生产问题
- 提高团队效率
- 促进知识分享
- 建立质量文化
通过 Claude Code 和自动化工具,你可以建立高效的质量门禁体系,持续提升代码质量。