71 lines
1.7 KiB
Markdown
71 lines
1.7 KiB
Markdown
# OES-WEB 开发流程
|
|
|
|
## 开发环境搭建
|
|
|
|
1. 克隆仓库
|
|
2. 运行 `npm install`
|
|
3. 运行 `npm run dev` 启动开发服务器
|
|
4. 打开 http://localhost:5173
|
|
|
|
## 分支策略
|
|
|
|
- `main` -- 生产就绪代码
|
|
- `develop` -- 功能集成分支
|
|
- `feature/*` -- 单个功能分支
|
|
- `fix/*` -- Bug 修复分支
|
|
|
|
分支命名: `feature/short-description` 或 `fix/issue-number-description`
|
|
|
|
## 提交规范
|
|
|
|
使用 Conventional Commits:
|
|
- `feat: 添加新敌人类型`
|
|
- `fix: 修复对角线移动碰撞检测`
|
|
- `docs: 更新 GDD 新增能力系统`
|
|
- `refactor: 提取物理计算到独立模块`
|
|
- `test: 添加存档系统集成测试`
|
|
|
|
## 代码审查清单
|
|
|
|
- [ ] 所有测试通过 (`npm test`)
|
|
- [ ] TypeScript 类型检查通过 (`npx tsc --noEmit`)
|
|
- [ ] 没有 console.log 留在生产代码中
|
|
- [ ] 新功能有对应测试
|
|
- [ ] 性能: 游戏循环中无不必要对象分配
|
|
- [ ] 组件有 `type` 字段
|
|
|
|
## 文件命名
|
|
|
|
- 组件: PascalCase (`PlayerEntity.ts`)
|
|
- 工具: camelCase (`collisionDetection.ts`)
|
|
- 资源: kebab-case (`enemy-sprite-sheet.png`)
|
|
- 测试: `*.test.ts` 或 `*.spec.ts`
|
|
|
|
## 测试标准
|
|
|
|
- 所有游戏逻辑需要单元测试 (物理、技能计算、炼金组合)
|
|
- 存档/读档需要集成测试
|
|
- 视觉/音频功能需要手动测试
|
|
- 合并前运行完整测试套件
|
|
|
|
## 开发工作流 (AI 辅助)
|
|
|
|
### 功能开发
|
|
1. 在 GDD 中描述功能
|
|
2. 创建 feature 分支
|
|
3. 让 Claude Code 探索代码库并提出方案
|
|
4. 审批后实现并添加测试
|
|
5. 审查并迭代
|
|
|
|
### Bug 修复
|
|
1. 描述症状
|
|
2. Claude Code 搜索相关代码
|
|
3. 提出修复方案和根因分析
|
|
4. 验证后提交
|
|
|
|
### 重构
|
|
1. 陈述目标 ("让碰撞系统更易测试")
|
|
2. Claude Code 分析当前结构
|
|
3. 提出方案后再修改
|
|
4. 审批后执行
|