做一次小小的备份,等会又删掉了

This commit is contained in:
2025-11-11 10:09:45 +08:00
parent 37c4404293
commit 9600e5b6e0
35 changed files with 4564 additions and 56 deletions

View File

@@ -41,6 +41,7 @@ junhong_cmp_fiber/
│ ├── queue/ # 队列封装Asynq
│ ├── response/ # 统一响应格式
│ ├── errors/ # 错误码定义
│ ├── constants/ # 常量定义业务常量、Redis Key 管理)
│ └── validator/ # 验证器封装
├── config/ # 配置文件yaml
@@ -94,9 +95,26 @@ store.Transaction(ctx, func(tx *store.Store) error {
### 异步任务
- 高频任务:批量状态同步、流量同步、实名检查
- 业务任务分佣计算、生命周期变更通知
- 业务任务:分佣计算、生命周期变更通知
- 任务优先级critical > default > low
### 常量和 Redis Key 管理
所有常量统一在 `pkg/constants/` 目录管理:
```go
// 业务常量
constants.SIMStatusActive
constants.SIMStatusInactive
// Redis Key 管理(统一使用 Key 生成函数)
constants.RedisSIMStatusKey(iccid) // sim:status:{iccid}
constants.RedisAgentCommissionKey(agentID) // agent:commission:{agentID}
constants.RedisTaskLockKey(taskName) // task:lock:{taskName}
// 使用示例
key := constants.RedisSIMStatusKey("898600...")
rdb.Set(ctx, key, status, time.Hour)
```
---
## 快速开始
@@ -324,19 +342,16 @@ go run cmd/worker/main.go
# 3. 生成实现计划(包含技术调研和设计)
/speckit.plan
# 4. 分析一致性(可选,验证规划质量)
/speckit.analyze
# 5. 生成任务列表
# 4. 生成任务列表
/speckit.tasks
# 6. 再次分析一致性(推荐)
# 5. 再次分析一致性(推荐)
/speckit.analyze
# 7. 执行实现
# 6. 执行实现
/speckit.implement
# 8. 代码审查和合并
# 7. 代码审查和合并
# - 验证宪章符合性
# - 确保所有测试通过
# - 检查代码覆盖率
@@ -373,7 +388,7 @@ go run cmd/worker/main.go
- ✅ 确保数据库索引支持查询
#### API 设计
- ✅ 使用统一 JSON 响应格式code/message/data/timestamp
- ✅ 使用统一 JSON 响应格式code/msg/data/timestamp
- ✅ 错误消息中英文双语
- ✅ 时间字段使用 ISO 8601 格式
- ✅ 金额字段使用整数(分)
@@ -407,17 +422,17 @@ specs/
### 常见问题
**Q: 为什么要使用 Speckit**
**Q: 为什么要使用 Speckit**
A: Speckit 确保团队遵循统一的开发流程,减少沟通成本,提高代码质量和可维护性。
**Q: 可以跳过某些步骤吗?**
**Q: 可以跳过某些步骤吗?**
A: 不推荐。每个步骤都有明确目的,跳过可能导致需求不清、架构不合理或测试不足。
**Q: 如何处理紧急修复?**
**Q: 如何处理紧急修复?**
A: 小型修复可以简化流程,但仍需遵循宪章原则(技术栈、测试、代码质量)。
**Q: 宪章可以修改吗?**
**Q: 宪章可以修改吗?**
A: 可以,使用 `/speckit.constitution` 修改。修改需要团队共识,并会自动同步所有模板。
**Q: 测试覆盖率达不到 70% 怎么办?**
**Q: 测试覆盖率达不到 70% 怎么办?**
A: 核心业务逻辑必须达到 90%+。工具函数、简单的 getter/setter 可以适当放宽,但总体必须 > 70%。