🎯 项目概述

  • Treasure Box 是一个基于 Clean Architecture (六边形架构) 设计的前端+后端工具应用,采用 Go-Kratos/React 框架构建。
  • 当前以 Text-to-SQL 为核心业务,支持ReAct 模式(Reasoning + Acting)、ASR (Automatic Speech Recognition) 和 TTS (Text-to-Speech) 能力。
  • 可以通过Spec coding 快速扩展业务功能,结合DDD的项目结构有效避免AI堆叠屎山。
    在这里插入图片描述

核心特性

  • Clean Architecture: 严格的分层架构,依赖倒置
  • 微服务友好: 原生支持 gRPC + HTTP
  • 类型安全: Protobuf 定义 API,编译期检查
  • 依赖注入: Google Wire 编译期依赖注入
  • 数据库安全: GORM Gen 代码生成,避免 SQL 注入
  • 容器化部署: Docker + Docker Compose
  • 自动化 CI/CD: GitHub Actions 自动构建部署

🛠️ 技术栈总览

后端技术栈

类别 技术选型 版本 选择理由
语言 Go 1.24 高性能、并发友好、部署简单
框架 Go-Kratos v2.8.0 微服务架构、DDD 友好
数据库 MySQL 8.0 生态成熟、运维成本低
ORM GORM + Gen v1.31.1 类型安全、功能完善
依赖注入 Google Wire v0.6.0 编译期检查、无反射
API 定义 Protobuf v3 类型安全、跨语言

前端技术栈

类别 技术选型 版本 选择理由
语言 JavaScript ES6+ 快速开发、学习成本低
框架 React 18.2.0 生态丰富、社区活跃
构建工具 Vite 5.0.8 极速 HMR、开发体验好
样式 TailwindCSS 3.3.6 原子化 CSS、快速开发
图标 Lucide React 0.294.0 现代化图标库

基础设施

类别 技术选型 选择理由
网关 Nginx 性能极佳、成熟稳定
容器 Docker 标准化部署
编排 Docker Compose 简单易用
CI/CD GitHub Actions 无缝集成、免费额度
镜像仓库 GHCR GitHub 原生支持
云服务 阿里云 国内速度快、价格优

📁 项目结构

代码结构

  • github地址:https://github.com/hanjg/treasure_box
treasure_box/
├── api/                    # Protobuf API 定义
├── cmd/                    # 应用入口
├── internal/               # 核心业务逻辑
│   ├── adapter/            # 适配器层
│   │   ├── driven/         # 被驱动适配器 (API)
│   │   └── driving/        # 驱动适配器 (数据访问)
│   ├── domain/             # 领域层
│   │   ├── entities/       # 实体
│   │   ├── interfaces/     # 接口 (端口)
│   │   └── services/       # 领域服务
│   └── usecases/           # 用例层
├── pkg/                    # 公共包
├── web/                    # 前端应用
├── configs/                # 配置文件
├── docker/                 # Docker 相关
├── scripts/                # 部署脚本
└── .github/                # CI/CD 配置

部署结构

阿里云 ECS
    ↓
Docker Compose Network
    ├── Frontend (Nginx) :80
    ├── Backend (Kratos) :8000
    ├── MySQL :3306
    └── Umami :3000 (Optional)

🔄 开发&部署流程

在这里插入图片描述

📊 核心业务时序

Text-to-SQL 转换流程

在这里插入图片描述


📝附录

1. 服务端语言:Go 1.24

对比方案
维度 Go Java Node.js Python
性能 ⭐⭐⭐⭐⭐ 编译型,高并发性能优秀 ⭐⭐⭐⭐ JVM优化好,但启动慢 ⭐⭐⭐ 单线程,I/O密集型好 ⭐⭐ GIL限制,性能较弱
并发模型 Goroutine + Channel,轻量级 Thread Pool,重量级 Event Loop,异步回调 asyncio,复杂度高
开发效率 ⭐⭐⭐⭐ 简洁,工具链完善 ⭐⭐⭐ 生态成熟但冗长 ⭐⭐⭐⭐⭐ 快速开发 ⭐⭐⭐⭐⭐ 快速原型
类型安全 静态强类型 静态强类型 弱类型(需TypeScript) 动态类型(需类型提示)
部署 单一二进制,无依赖 需JVM,包体积大 需Node运行时 需Python环境
微服务 ⭐⭐⭐⭐⭐ 天然适合 ⭐⭐⭐⭐ Spring Cloud成熟 ⭐⭐⭐ 轻量但缺乏规范 ⭐⭐ 不适合高性能场景
选择理由
  • 高性能并发:Goroutine模型适合处理大量并发请求
  • 部署简单:编译成单一二进制文件,无需运行时环境
  • 内存占用低:相比JVM节省资源,适合容器化部署
  • 强类型安全:编译期错误检查,减少运行时问题
  • 云原生生态:Kubernetes、Docker等都是Go编写,生态契合

2. 服务端框架:Go-Kratos v2

对比方案
维度 Kratos Gin Echo Go-Zero
架构风格 微服务框架,DDD友好 Web框架,轻量级 Web框架,性能优先 微服务框架,工具链强
gRPC支持 ⭐⭐⭐⭐⭐ 原生支持 ⭐⭐ 需手动集成 ⭐⭐ 需手动集成 ⭐⭐⭐⭐⭐ 原生支持
依赖注入 Wire集成 自动生成
配置管理 Protobuf配置 手动处理 手动处理 YAML配置
中间件生态 ⭐⭐⭐⭐ 完善 ⭐⭐⭐⭐⭐ 丰富 ⭐⭐⭐⭐ 丰富 ⭐⭐⭐ 自带常用
学习曲线 中等,需理解DDD 中等,工具多
社区活跃度 B站开源,国内活跃 最活跃 活跃 国内活跃
选择理由
  • 微服务架构:天然支持gRPC + HTTP双协议
  • Clean Architecture:强制分层,代码结构清晰
  • Protobuf优先:API定义即文档,类型安全
  • Wire依赖注入:编译期检查,无反射性能损耗
  • 中间件完善:日志、链路追踪、限流等开箱即用
  • 国内支持好:B站团队维护,文档和社区友好

3. 数据库:MySQL 8.0

对比方案
维度 MySQL PostgreSQL MongoDB Redis
数据模型 关系型 关系型(更强) 文档型 KV存储
事务支持 ⭐⭐⭐⭐ ACID ⭐⭐⭐⭐⭐ ACID强 ⭐⭐⭐ 有限支持 ⭐⭐ 简单事务
性能 ⭐⭐⭐⭐ 读写均衡 ⭐⭐⭐⭐ 复杂查询强 ⭐⭐⭐⭐⭐ 写入快 ⭐⭐⭐⭐⭐ 内存速度
JSON支持 ⭐⭐⭐ 5.7+支持 ⭐⭐⭐⭐⭐ 原生强大 ⭐⭐⭐⭐⭐ 原生 ⭐⭐ 字符串存储
生态成熟度 ⭐⭐⭐⭐⭐ 最成熟 ⭐⭐⭐⭐ 成熟 ⭐⭐⭐⭐ 成熟 ⭐⭐⭐⭐⭐ 成熟
运维成本 ⭐⭐⭐⭐⭐ 低,工具多 ⭐⭐⭐ 中等 ⭐⭐⭐ 中等 ⭐⭐⭐⭐ 低
云服务支持 ⭐⭐⭐⭐⭐ 全面 ⭐⭐⭐⭐ 全面 ⭐⭐⭐⭐ 全面 ⭐⭐⭐⭐⭐ 全面
选择理由
  • 生态成熟:工具链完善,运维经验丰富
  • GORM支持好:Go生态最佳ORM支持
  • 性能稳定:8.0版本性能大幅提升
  • 成本低:云服务价格相对PostgreSQL更低
  • 团队熟悉:学习成本低,问题排查快

4. ORM:GORM + GORM Gen

对比方案
维度 GORM XORM sqlx ent
类型安全 ⭐⭐⭐ 反射 ⭐⭐⭐ 反射 ⭐⭐⭐⭐⭐ 原生SQL ⭐⭐⭐⭐⭐ 代码生成
性能 ⭐⭐⭐ 中等 ⭐⭐⭐ 中等 ⭐⭐⭐⭐⭐ 接近原生 ⭐⭐⭐⭐ 好
功能丰富度 ⭐⭐⭐⭐⭐ 最全 ⭐⭐⭐⭐ 全面 ⭐⭐ 基础 ⭐⭐⭐⭐ 现代化
关联查询 ⭐⭐⭐⭐⭐ 强大 ⭐⭐⭐⭐ 支持 ⭐⭐ 手动 ⭐⭐⭐⭐⭐ 图查询
迁移支持 ⭐⭐⭐⭐ AutoMigrate ⭐⭐⭐ 支持 ❌ 无 ⭐⭐⭐⭐⭐ Schema优先
学习曲线 ⭐⭐⭐⭐ 低 ⭐⭐⭐⭐ 低 ⭐⭐⭐⭐⭐ 最低 ⭐⭐⭐ 中等
社区 ⭐⭐⭐⭐⭐ 最活跃 ⭐⭐⭐ 活跃 ⭐⭐⭐⭐ 活跃 ⭐⭐⭐⭐ Facebook
选择理由
  • GORM Gen:代码生成,类型安全,避免反射性能损耗
  • 功能完善:Hooks、事务、软删除、关联查询等开箱即用
  • 插件生态:dbresolver支持读写分离
  • 社区最大:问题解决快,文档丰富
  • 迁移工具:配合golang-migrate实现版本化迁移

5. 前端语言:JavaScript (ES6+)

对比方案
维度 JavaScript TypeScript
类型安全 ❌ 弱类型 ✅ 强类型
开发效率 ⭐⭐⭐⭐⭐ 快速 ⭐⭐⭐⭐ 需类型定义
重构友好 ⭐⭐ 困难 ⭐⭐⭐⭐⭐ 编译器支持
学习曲线 ⭐⭐⭐⭐⭐ 低 ⭐⭐⭐ 需学习类型系统
生态兼容 ⭐⭐⭐⭐⭐ 原生 ⭐⭐⭐⭐ 需编译
错误检测 运行时 编译期
选择理由
  • 快速开发:小型项目,开发效率优先
  • 无编译负担:减少构建复杂度
  • 团队熟悉:学习成本低
  • ⚠️ 未来考虑:项目规模扩大后可迁移到TypeScript

6. 前端框架:React 18 + Vite

对比方案
维度 React + Vite Vue 3 + Vite Svelte + Vite Next.js
性能 ⭐⭐⭐⭐ 虚拟DOM ⭐⭐⭐⭐ 响应式 ⭐⭐⭐⭐⭐ 编译优化 ⭐⭐⭐⭐ SSR
生态 ⭐⭐⭐⭐⭐ 最丰富 ⭐⭐⭐⭐ 丰富 ⭐⭐⭐ 成长中 ⭐⭐⭐⭐⭐ React生态
学习曲线 ⭐⭐⭐ 中等 ⭐⭐⭐⭐ 低 ⭐⭐⭐⭐⭐ 最低 ⭐⭐ 复杂
开发体验 ⭐⭐⭐⭐ Hooks ⭐⭐⭐⭐⭐ Composition ⭐⭐⭐⭐ 简洁 ⭐⭐⭐⭐ 全栈
构建速度 ⭐⭐⭐⭐⭐ Vite极快 ⭐⭐⭐⭐⭐ Vite极快 ⭐⭐⭐⭐⭐ Vite极快 ⭐⭐⭐ Webpack
UI组件库 ⭐⭐⭐⭐⭐ 最多 ⭐⭐⭐⭐ 多 ⭐⭐⭐ 较少 ⭐⭐⭐⭐⭐ React生态
选择理由
  • React生态:组件库丰富(Lucide React图标库)
  • Vite构建:开发体验极佳,HMR秒级响应
  • TailwindCSS:原子化CSS,快速构建现代UI
  • 社区最大:问题解决方案多,招聘容易
  • 灵活性高:适合快速迭代的产品

7. 网关:Nginx

对比方案
维度 Nginx Traefik Caddy Envoy
性能 ⭐⭐⭐⭐⭐ C语言,极快 ⭐⭐⭐⭐ Go ⭐⭐⭐⭐ Go ⭐⭐⭐⭐⭐ C++
配置复杂度 ⭐⭐⭐ 中等 ⭐⭐⭐⭐ 自动发现 ⭐⭐⭐⭐⭐ 最简单 ⭐⭐ 复杂
HTTPS ⭐⭐⭐ 手动配置 ⭐⭐⭐⭐⭐ 自动证书 ⭐⭐⭐⭐⭐ 自动证书 ⭐⭐⭐ 需配置
动态配置 ❌ 需重载 ✅ 支持 ✅ 支持 ✅ 支持
生态成熟度 ⭐⭐⭐⭐⭐ 最成熟 ⭐⭐⭐⭐ 云原生 ⭐⭐⭐ 新兴 ⭐⭐⭐⭐ 服务网格
选择理由
  • 成熟稳定:生产环境验证充分
  • 性能极佳:C语言实现,资源占用低
  • 功能全面:反向代理、负载均衡、静态文件服务
  • 运维熟悉:团队经验丰富,问题排查快
  • Docker集成:官方镜像稳定,配置灵活

8. DevOps:GitHub Actions

对比方案
维度 GitHub Actions GitLab CI Jenkins CircleCI
集成度 ⭐⭐⭐⭐⭐ GitHub原生 ⭐⭐⭐⭐⭐ GitLab原生 ⭐⭐ 需配置 ⭐⭐⭐ 第三方
配置复杂度 ⭐⭐⭐⭐ YAML简单 ⭐⭐⭐⭐ YAML ⭐⭐ Groovy复杂 ⭐⭐⭐⭐ YAML
免费额度 ⭐⭐⭐⭐ 公开仓库无限 ⭐⭐⭐⭐ 慷慨 ⭐⭐⭐⭐⭐ 自托管免费 ⭐⭐⭐ 有限
生态 ⭐⭐⭐⭐⭐ Marketplace丰富 ⭐⭐⭐⭐ 丰富 ⭐⭐⭐⭐⭐ 插件最多 ⭐⭐⭐ 中等
性能 ⭐⭐⭐⭐ 云端快 ⭐⭐⭐⭐ 云端快 ⭐⭐⭐ 自托管 ⭐⭐⭐⭐ 云端
选择理由
  • 无缝集成:代码托管和CI/CD在同一平台
  • 配置简单:YAML配置,学习成本低
  • Marketplace:丰富的预制Actions,开箱即用
  • GHCR集成:GitHub Container Registry原生支持
  • 免费额度:公开仓库无限制,私有仓库2000分钟/月
  • 并行构建:支持矩阵构建,加速CI流程

9. 云服务:阿里云

对比方案
维度 阿里云 腾讯云 AWS Azure
国内速度 ⭐⭐⭐⭐⭐ 最快 ⭐⭐⭐⭐⭐ 快 ⭐⭐⭐ 海外节点 ⭐⭐⭐ 海外节点
价格 ⭐⭐⭐⭐ 竞争力强 ⭐⭐⭐⭐ 相近 ⭐⭐ 较贵 ⭐⭐ 较贵
生态 ⭐⭐⭐⭐⭐ 国内最全 ⭐⭐⭐⭐ 全面 ⭐⭐⭐⭐⭐ 全球最全 ⭐⭐⭐⭐ 企业级
文档 ⭐⭐⭐⭐ 中文友好 ⭐⭐⭐⭐ 中文友好 ⭐⭐⭐ 英文为主 ⭐⭐⭐ 英文为主
备案 ✅ 支持 ✅ 支持 ❌ 不支持 ❌ 不支持
技术支持 ⭐⭐⭐⭐ 响应快 ⭐⭐⭐⭐ 响应快 ⭐⭐⭐ 时差 ⭐⭐⭐ 时差
选择理由
  • 国内优势:CDN节点多,访问速度快
  • 备案支持:提供完整的ICP备案流程
  • 价格优势:学生优惠、新用户优惠力度大
  • 生态完善:ECS、RDS、OSS等产品线齐全
  • 中文文档:学习成本低,问题排查快
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐