mirror of
https://gitee.com/spark-store-project/spark-store
synced 2026-04-26 01:10:16 +08:00
## 文档(全部中文) - AGENTS.md - 完整的 AI 编码指南(中文版) - CONTRIBUTING.md - 贡献指南 - DEVELOPMENT.md - 开发文档 - DEPLOYMENT.md - 部署文档 - TESTING.md - 测试文档 - TROUBLESHOOTING.md - 问题排查指南 - FAQ.md - 常见问题 - WORKFLOW.md - 标准开发流程文档 ## AI 工作流(9个详细工作流) - feature-development.md - 新功能开发流程 - bug-fix.md - Bug 修复流程 - code-review.md - 代码审查流程 - testing.md - 测试编写流程 - release.md - 发布流程 - refactoring.md - 代码重构流程 - documentation.md - 文档更新流程 - performance-optimization.md - 性能优化流程 - security-audit.md - 安全审计流程 ## 测试基础设施 - vitest.config.ts - Vitest 单元测试配置 - playwright.config.ts - Playwright E2E 测试配置 - src/__tests__/setup.ts - 测试环境设置 - src/__tests__/unit/downloadStatus.test.ts - 示例单元测试 - e2e/basic.spec.ts - 示例 E2E 测试 ## CI/CD - .github/workflows/test.yml - 新建测试 CI 工作流 - .github/workflows/build.yml - 更新构建工作流,添加测试步骤 ## Issue 模板 - 更新 bug_report.md 为标准 Bug 报告模板 - 更新 help_wanted.md 为标准功能请求模板 ## 配置更新 - package.json - 添加测试依赖和 7 个新的 npm 脚本 - .gitignore - 添加测试相关忽略项 ## 新增 npm 脚本 - test - 运行单元测试 - test:watch - 监听模式 - test:coverage - 生成覆盖率报告 - test:e2e - 运行 E2E 测试 - test:e2e:ui - E2E UI 模式 - test:e2e:debug - E2E 调试模式 - test:all - 运行所有测试 ## 新增测试依赖 - @playwright/test ^1.40.0 - @testing-library/jest-dom ^6.1.5 - @testing-library/vue ^8.0.1 - @vitest/coverage-v8 ^1.0.0 - @vue/test-utils ^2.4.3 - jsdom ^23.0.1 - vitest ^1.0.0
3.6 KiB
3.6 KiB
description
| description |
|---|
| 代码审查流程 |
工作流说明
此工作流指导如何进行代码审查。
审查清单
代码质量
- 代码遵循项目规范
- TypeScript 类型正确
- 没有
any类型(除非必要) - ESLint 和 Prettier 通过
- 代码可读性良好
功能实现
- 实现符合需求
- 边界情况处理
- 错误处理完善
- 没有引入新 Bug
测试
- 包含足够的测试
- 测试覆盖率合理
- 所有测试通过
- E2E 测试(如需要)
文档
- 更新了相关文档
- 代码注释充分
- API 文档(如需要)
- CHANGELOG.md(如需要)
安全性
- 没有安全漏洞
- 输入验证完善
- 权限检查正确
- 敏感信息保护
性能
- 没有明显的性能问题
- 内存使用合理
- 没有不必要的渲染
- 资源加载优化
审查流程
1. 理解变更
- 阅读 PR 描述
- 查看 Issue 链接
- 理解变更目的
- 检查变更范围
2. 代码审查
主进程代码:
# 检查类型安全
npx tsc --noEmit
# 检查代码质量
npm run lint
渲染进程代码:
- 组件结构
- 状态管理
- 事件处理
- 样式实现
3. 测试验证
# 运行单元测试
npm run test
# 运行 E2E 测试
npm run test:e2e
# 检查覆盖率
npm run test:coverage
4. 提供反馈
正面反馈:
- 好的实现
- 优秀的代码
- 有价值的贡献
建设性反馈:
- 指出问题
- 提出建议
- 解释原因
反馈格式:
### 问题
**位置:** `src/components/AppCard.vue:45`
**描述:** 这里缺少错误处理,可能导致应用崩溃。
**建议:**
```typescript
try {
await installPackage();
} catch (error) {
console.error("Install failed:", error);
showError(error.message);
}
```
### 5. 批准或要求修改
**批准条件:**
- 所有审查项目通过
- 所有测试通过
- CI 检查通过
- 没有阻塞问题
**要求修改:**
- 指出必须修复的问题
- 给出明确的修改建议
- 等待作者响应
## 审查原则
### 及时性
- 尽快响应 PR
- 设定响应时间预期
- 优先处理紧急 PR
### 建设性
- 提供具体的反馈
- 给出改进建议
- 解释审查理由
### 尊重
- 尊重作者的贡献
- 使用礼貌的语言
- 认可好的实现
### 一致性
- 遵循项目规范
- 保持审查标准一致
- 参考之前类似 PR
## 常见问题
### 类型安全问题
**问题:** 使用了 `any` 类型
**建议:**
```typescript
// ❌ 避免
const data: any = response;
// ✅ 推荐
interface ResponseData {
id: string;
name: string;
}
const data: ResponseData = response;
代码重复
问题: 代码重复
建议:
// 提取公共函数
function formatSize(size: number): string {
return size > 1024 ? `${size / 1024} MB` : `${size} KB`;
}
错误处理
问题: 缺少错误处理
建议:
async function loadApps() {
try {
const response = await axios.get("/api/apps");
return response.data;
} catch (error) {
logger.error({ err: error }, "Failed to load apps");
throw error;
}
}
审查后操作
批准
- 点击 "Approve review"
- 添加评论(可选)
- 等待合并
要求修改
- 选择 "Request changes"
- 提供详细反馈
- 等待作者更新
评论
- 选择 "Comment"
- 提供建议或问题
- 不阻止合并
相关文档
- CONTRIBUTING.md - 贡献指南
- DEVELOPMENT.md - 开发文档
- AGENTS.md - AI 编码指南