library-picturebook-activity/.cursor/rules/code-review-checklist.mdc

113 lines
2.7 KiB
Plaintext
Raw Normal View History

---
description: 代码审查检查清单(手动应用)
globs:
alwaysApply: false
---
# 代码审查检查清单
在提交代码前,请确保以下各项都已检查:
## 多租户数据隔离
- [ ] 所有数据库查询包含 `tenantId` 条件
- [ ] 创建数据时设置了 `tenantId`
- [ ] 更新/删除操作验证了 `tenantId`
- [ ] 新的 Prisma 模型包含了必需的审计字段
## 数据验证
- [ ] DTO 验证规则完整
- [ ] 前端和后端都进行了数据验证
- [ ] 使用了 TypeScript 类型定义
- [ ] 处理了所有必填字段
## 错误处理
- [ ] 所有异步操作都有错误处理
- [ ] 错误信息清晰明确
- [ ] 使用了合适的 HTTP 状态码
- [ ] 前端显示了友好的错误提示
## 权限控制
- [ ] 后端使用了 `@RequirePermission()` 装饰器
- [ ] 前端路由配置了 `permissions` meta
- [ ] 权限验证失败返回 403
- [ ] 遵循最小权限原则
## 代码质量
- [ ] 代码格式符合 ESLint/Prettier 规范
- [ ] 复杂逻辑添加了注释
- [ ] 变量和函数命名清晰
- [ ] 无硬编码配置(使用环境变量)
- [ ] 无调试代码console.log 等)
## 性能优化
- [ ] 数据库查询使用了 `include` 预加载
- [ ] 使用了 `select` 精简字段
- [ ] 实现了分页查询
- [ ] 避免了 N+1 查询
- [ ] 前端组件按需加载
## 安全性
- [ ] 敏感数据加密存储
- [ ] API 需要认证(除非 `@Public()`
- [ ] 防止了 SQL 注入(使用 Prisma
- [ ] 防止了 XSS 攻击
- [ ] Token 过期时间合理
## 测试
- [ ] 核心业务逻辑有单元测试
- [ ] 测试覆盖率 > 80%
- [ ] 所有测试通过
## Git 提交
- [ ] 提交信息清晰(使用中文)
- [ ] 提交信息格式:`类型: 描述`
- [ ] 一次提交只做一件事
- [ ] 不包含敏感信息
## 文档
- [ ] 复杂功能有文档说明
- [ ] API 接口有注释
- [ ] README 更新(如有必要)
## 使用建议
### 在提交前运行
```bash
# 后端
cd backend
pnpm lint # 代码检查
pnpm test # 运行测试
pnpm build # 确保能成功构建
# 前端
cd frontend
pnpm lint # 代码检查
pnpm build # 确保能成功构建
```
### 自动化检查
考虑使用 Git hooks如 husky自动执行检查
- pre-commit: 运行 lint
- pre-push: 运行测试
### Code Review 关注点
审查他人代码时,重点关注:
1. **数据安全**:租户隔离是否完整
2. **权限控制**:是否正确验证权限
3. **错误处理**:是否处理所有异常情况
4. **代码质量**:是否易于理解和维护
5. **性能**:是否有明显的性能问题