# 代码审查规范

## 审查流程

### 1. 提交合并请求
- 使用 GitLab Merge Request
- 标题格式：`[模块] 功能描述`
- 详细描述变更内容和影响
- 关联相关 Issue

### 2. 审查职责
- 至少需要一位审查者批准
- 核心模块需要两位审查者
- 审查者应在24小时内响应
- 提交者负责跟进和解决问题

### 3. 审查重点
- 代码质量和规范
  - 遵循项目代码规范
  - 注释完整性和准确性
  - 命名规范和可读性
  - 代码重复和复杂度

- 功能完整性
  - 需求实现完整性
  - 边界条件处理
  - 错误处理机制
  - 日志记录合理性

- 测试覆盖
  - 单元测试覆盖率
  - 测试用例完整性
  - 边界条件测试
  - 异常情况测试

- 性能考虑
  - 算法复杂度
  - 资源使用效率
  - 并发处理
  - 内存管理

### 4. 合并条件
- 所有审查意见已解决
- CI/CD 流水线通过
- 测试覆盖率达标
- 无冲突待解决

## 最佳实践

### 1. 提交者准备
- 自审代码确保质量
- 编写清晰的描述
- 添加必要的测试
- 确保本地构建通过

### 2. 审查者反馈
- 及时审查和反馈
- 提供建设性意见
- 重点关注设计问题
- 使用友好的语气

### 3. 沟通准则
- 保持客观和专业
- 聚焦问题本身
- 提供改进建议
- 及时响应和跟进

## Merge Request 模板

```markdown
## 变更说明
<!-- 描述此次变更的主要内容 -->

## 相关 Issue
<!-- 关联的 Issue 编号 -->

## 测试情况
<!-- 描述测试覆盖情况 -->

## 影响范围
<!-- 描述此次变更可能影响的范围 -->

## 自查清单
- [ ] 代码符合项目规范
- [ ] 添加了必要的测试
- [ ] 更新了相关文档
- [ ] 本地构建和测试通过
```

## 审查清单

### 1. 代码质量
- [ ] 遵循代码规范
- [ ] 命名清晰合理
- [ ] 注释完整准确
- [ ] 无重复代码
- [ ] 复杂度可接受

### 2. 功能完整性
- [ ] 实现符合需求
- [ ] 处理了边界情况
- [ ] 错误处理合理
- [ ] 日志记录完整

### 3. 测试质量
- [ ] 测试覆盖充分
- [ ] 包含边界测试
- [ ] 包含错误测试
- [ ] 测试代码规范

### 4. 性能安全
- [ ] 性能影响可接受
- [ ] 资源使用合理
- [ ] 并发处理正确
- [ ] 无安全隐患 