64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown
# 编码规则
|
|||
|
|
|
||
|
|
> 每次写代码前先读完本文件。与技术细节冲突时,以 [`03-tech-stack.md`](03-tech-stack.md) 和 [`04-architecture.md`](04-architecture.md) 为准。
|
||
|
|
|
||
|
|
## 黄金法则
|
||
|
|
|
||
|
|
1. 不臆造:字段、接口、依赖和文件必须来自当前代码或文档。
|
||
|
|
2. 守范围:只做当前任务,不顺手加后续功能。
|
||
|
|
3. 照架构:使用既有 Wails、Vue、SQLite、平台模块边界。
|
||
|
|
4. 小步改:一次解决一个问题,不夹带无关重构。
|
||
|
|
5. 可验证:完成前必须测试或构建通过。
|
||
|
|
|
||
|
|
## 动手前
|
||
|
|
|
||
|
|
- 先读 `AGENTS.md`、`00-ai-start-here.md`、`current-state.md` 和当前任务。
|
||
|
|
- 查找现有函数、组件、工具和测试,复用优先。
|
||
|
|
- 需求不清或会影响架构时,先说明问题再决定。
|
||
|
|
- 不确定 Wails API 时,优先看本项目现有代码和已锁版本,不直接按最新文档改。
|
||
|
|
|
||
|
|
## 代码规范
|
||
|
|
|
||
|
|
- Go 代码用 `gofmt`。
|
||
|
|
- TypeScript / Vue 保持当前项目风格。
|
||
|
|
- 错误必须返回或展示,不静默吞掉。
|
||
|
|
- 后端服务方法签名变化必须同步前端 bindings。
|
||
|
|
- 前端 UI 文案走现有 i18n 体系,避免新增硬编码中文/英文。
|
||
|
|
- 新依赖必须说明必要性;能用标准库或现有依赖解决时不新增。
|
||
|
|
|
||
|
|
## 模块规则
|
||
|
|
|
||
|
|
- `main.go` 不写业务逻辑。
|
||
|
|
- SQLite 读写集中在 store 或明确服务层,不散落到多个模块。
|
||
|
|
- 平台差异放在 `platform/`。
|
||
|
|
- 前端 bindings 不承载业务逻辑。
|
||
|
|
- 通用 UI 组件保持小而直接,不为未来需求提前抽象。
|
||
|
|
|
||
|
|
## 验证要求
|
||
|
|
|
||
|
|
代码改动完成前至少运行相关命令:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
go test ./...
|
||
|
|
cd frontend
|
||
|
|
npm run build
|
||
|
|
cd ..
|
||
|
|
go build -o bin\cmbone.exe .
|
||
|
|
```
|
||
|
|
|
||
|
|
推荐直接运行:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
.\init.ps1
|
||
|
|
```
|
||
|
|
|
||
|
|
验证失败时,不要标记任务完成。无法运行时,必须在回复和 `progress.md` 里写清原因。
|
||
|
|
|
||
|
|
## 绝不
|
||
|
|
|
||
|
|
- 不提交密钥、token、密码、本地数据库或用户配置。
|
||
|
|
- 不提交 `node_modules`、`frontend/dist`、`bin`。
|
||
|
|
- 不用删除测试、降低断言的方式制造通过。
|
||
|
|
- 不擅自 reset、checkout 或删除用户未要求删除的文件。
|
||
|
|
- 不把依赖升级和功能改动混在同一个任务里。
|