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天 |
阶段二时间线建议
技术栈演进建议
| 当前 |
建议 |
原因 |
| 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 |