99 lines
4.2 KiB
Markdown
99 lines
4.2 KiB
Markdown
# GoChat 阶段二规划建议
|
||
|
||
## 阶段一(P1-P15)完成总结
|
||
|
||
- 32,228 行源代码 + 8,746 行测试代码
|
||
- 209 个源文件 + 30 个测试文件
|
||
- 104 个 API 路由,97% 覆盖 Chatwoot 核心功能
|
||
- 全量测试通过(build+vet+unit+e2e 100% PASS)
|
||
- 安全加固 1,851 行代码(14个安全模块)
|
||
- 性能基准数据收集完成
|
||
|
||
## 阶段二 P0 生产就绪 — 已完成 ✅
|
||
|
||
| 项目 | 说明 | 状态 |
|
||
|------|------|------|
|
||
| P0-4 Service层测试 | 448测试,覆盖率0.2%→50%+ | ✅ 完成 |
|
||
| P0-5 Repository层测试 | 226测试(21 repo全覆盖) | ✅ 完成 |
|
||
| P0-6 环境配置管理 | Viper热加载+多环境叠加+.env+11可热加载字段+27测试 | ✅ 完成 |
|
||
| P0-7 CORS生产配置 | 白名单+通配符+Credentials+19测试 | ✅ 完成 |
|
||
| P0-8 集成/e2e测试 | Auth+AccountCRUD+CRM suite全PASS | ✅ 完成 |
|
||
| P0-9 安全审计加固 | RateLimiting+输入验证+SQL注入防护+14安全模块 | ✅ 完成 |
|
||
| P0-10 CI/CD流水线 | GitHub Actions 5阶段:lint+test(PG/SQLite矩阵)+security+build+deploy | ✅ 完成 |
|
||
| P0-11 文档更新 | README+阶段2计划+各P0变更记录 | ✅ 完成 |
|
||
|
||
### 关键修复记录(P0-8/P0-9阶段)
|
||
|
||
- AccountHandler.Delete:从stub改为真正soft delete(h.svc.Delete)
|
||
- Gin路由参数名:account scope统一`:id`,子资源保留`:contact_id/:inbox_id`
|
||
- E2E路由注册:移至E2ETestSuite.SetupSuite统一注册,子suite不再重复注册
|
||
- CRM login:解析嵌套JSON `{"success":true,"data":{"access_token":...}}`
|
||
- CRM URL尾斜杠:去掉导致404的trailing slash
|
||
- AccountService.Delete:nil repo安全检查
|
||
- 全项目141+测试PASS / 0 FAIL / build+vet零错误
|
||
|
||
### P1 — 功能补全(重要)
|
||
|
||
| 项目 | 说明 | 预估工时 |
|
||
|------|------|----------|
|
||
| Agent Availability | 在线/离线/忙碌状态管理 | 3天 |
|
||
| Conversation Assign/Labels | 分配和标签管理独立 endpoint | 2天 |
|
||
| Swagger/OpenAPI | 自动生成 API 文档 | 2天 |
|
||
| Email Channel | SMTP 集成,邮件转对话 | 5天 |
|
||
| Facebook/Meta Channel | Graph API 集成 | 5天 |
|
||
| Bulk Actions | 批量对话操作 | 3天 |
|
||
| Database Migration | 版本化 migration 工具(golang-migrate) | 2天 |
|
||
|
||
### P2 — 性能优化(提升)
|
||
|
||
| 项目 | 说明 | 预估工时 |
|
||
|------|------|----------|
|
||
| 数据库索引优化 | Conversation/Message 查询加速 | 2天 |
|
||
| Connection Pooling | PostgreSQL 连接池配置 | 1天 |
|
||
| 缓存层 | Redis 缓存热点数据(用户/RBAC) | 3天 |
|
||
| WebSocket 性能 | Hub 优化 + goroutine pool | 2天 |
|
||
| LLM 响应缓存 | 重复查询缓存 | 2天 |
|
||
| 分页优化 | cursor-based pagination | 2天 |
|
||
|
||
### P3 — 运维保障(锦上添花)
|
||
|
||
| 项目 | 说明 | 预估工时 |
|
||
|------|------|----------|
|
||
| Prometheus 指标 | reporting 模块导出 Prometheus metrics | 2天 |
|
||
| Grafana Dashboard | 监控面板模板 | 1天 |
|
||
| CI/CD Pipeline | GitHub Actions 自动测试+部署 | 2天 |
|
||
| Kubernetes Helm Chart | 生产部署编排 | 3天 |
|
||
| 日志聚合 | JSON 结构化日志 + ELK/Loki | 2天 |
|
||
| 健康检查增强 | /health → /health/live + /health/ready | 1天 |
|
||
| Tracing | OpenTelemetry 分布式追踪 | 3天 |
|
||
|
||
## 阶段二时间线建议
|
||
|
||
```
|
||
Week 1-2: P0 生产就绪(PG迁移 + Redis + 测试覆盖率)
|
||
Week 3-4: P1 功能补全(Availability + Email + Meta + Swagger)
|
||
Week 5-6: P2 性能优化(索引 + 缓存 + 连接池 + 分页)
|
||
Week 7-8: P3 运维保障(Metrics + CI/CD + K8s + Tracing)
|
||
```
|
||
|
||
## 技术栈演进建议
|
||
|
||
| 当前 | 建议 | 原因 |
|
||
|------|------|------|
|
||
| SQLite | PostgreSQL | 生产级关系数据库 |
|
||
| Memory PubSub | Redis Streams/NATS | 持久化消息队列 |
|
||
| 手动 DI | Wire/Dig | 降低编排复杂度 |
|
||
| applogger | slog/zap | 结构化日志 |
|
||
| 无配置中心 | Viper + 远程配置 | 多环境管理 |
|
||
| 无 metrics | Prometheus client | 可观测性 |
|
||
| 无 tracing | OpenTelemetry | 分布式追踪 |
|
||
|
||
## 团队分工建议
|
||
|
||
| 角色 | 负责范围 |
|
||
|------|----------|
|
||
| 后端工程师A | PostgreSQL迁移 + Redis集成 + 配置管理 |
|
||
| 后端工程师B | Service/Repo测试 + SAML + Availability |
|
||
| 后端工程师C | Email/Meta渠道 + Swagger + Bulk Actions |
|
||
| DevOps | CI/CD + K8s + 监控 + Tracing |
|
||
| 前端工程师 | WebWidget SDK + Dashboard UI | |