架构概览
TradingCopilot 是模块化单体。一个 Go 二进制负责 API、任务队列、调度器和运行时进程,前端使用 Vue 3 与 Element Plus。
后端边界
internal/domain/*:领域类型和规则,不依赖 GORM、HTTP 或外部客户端。internal/app/*:用例层,写入类用例拥有事务边界。internal/infra/*:AI、行情、Telegram、消息、队列、代理、安全和配置等基础设施适配器。internal/infra/persistence/gorm/*:数据库连接、GORM 模型、映射器、仓储、工作单元和迁移。internal/transport/http:路由、中间件、JSON:API 编码、OpenAPI 生成接口和 DTO 映射。internal/composition:组合根,连接用例、基础设施、持久化和 transport。cmd/tradingcopilot:CLI 入口,只负责配置加载、命令解析和委托。
API 形态
HTTP 路由以 /api 为根路径。除 SSE 流和静态前端资源外,请求/响应体都使用 JSON:API 资源文档。
api/openapi.yaml 是生成 Go 接口和前端 TypeScript 类型的共享契约。
运行时进程
常见运行命令:
bash
go run ./cmd/tradingcopilot serve
go run ./cmd/tradingcopilot worker
go run ./cmd/tradingcopilot scheduler
go run ./cmd/tradingcopilot message-subscription-listener
go run ./cmd/tradingcopilot migrateDocker 容器的 all 模式会组合运行迁移、HTTP 服务、worker、scheduler 和消息订阅监听。
设计原则
- 保持单体部署,不引入微服务复杂度。
- 外部协议客户端留在基础设施适配器。
- 数据库访问留在 GORM 持久化边界。
- 应用层拥有消息持久化、过滤结果写入和会议创建事务。
- CLI 入口保持轻量,跨模块组装放在组合根。