1. 摘要
我是一名独立开发者,用 TRAE SOLO 从零开发了一款名为「词韵」的全栈英语单词学习应用——包含 iOS 原生客户端(SwiftUI)、Go 后端服务、Web 管理后台、Docker 部署,以及 iCloud 跨设备同步。整个项目从需求拆解、架构设计、编码实现到 Bug 修复,全程由 SOLO 辅助完成。最终交付了一个拥有 20+ 核心功能模块、80+ Bug 修复、16 张数据库表、完整 CI/CD 部署 的生产级应用。
2. 背景
我是一名 iOS 开发者,一直想做一个属于自己的单词学习工具。市面上的背单词 App 要么广告太多,要么算法不够智能,要么数据不同步。我想要一款:
-
算法科学:基于 SM-2 间隔重复,真正有效
-
数据互通:iPhone、iPad 数据实时同步
-
体验精致:动画流畅、触感反馈、暗色模式
-
完全可控:自己的词库、自己的数据、自己的服务器
但全栈开发涉及 iOS、后端、数据库、部署……一个人做这些,工作量巨大。直到我遇到了 TRAE SOLO。
3. 实践过程
第一步:架构设计与技术选型
我没有直接让 SOLO 写代码,而是先让它帮我做技术选型和架构设计:
Plain Text
我需要一个英语单词学习 App,支持 iOS、服务端、数据同步,
请帮我设计技术架构和数据库表结构
SOLO 给出了完整的技术方案:
| 层级 | 技术选型 | 理由 |
|---|---|---|
| iOS 客户端 | SwiftUI + Combine | 原生体验,声明式 UI |
| 后端服务 | Go + Gin | 高性能,部署简单 |
| 数据库 | SQLite + PostgreSQL | 开发零配置,生产可扩展 |
| 认证 | JWT | 无状态,多端支持 |
| 实时推送 | SSE | 轻量,兼容性好 |
| 跨设备同步 | CloudKit + REST API | 离线优先,在线同步 |
| 部署 | Docker Compose | 一键部署,环境一致 |
第二步:分模块迭代开发
我没有一次性让 SOLO 生成所有代码,而是按功能模块逐步迭代:
迭代 1 - 核心学习功能
-
单词卡片展示(音标、释义、例句、词根词缀)
-
SM-2 间隔重复算法实现
-
四种学习排序(正序/倒序/随机/智能复习)
-
收藏和已熟标记系统
迭代 2 - 测试与复习
-
听力测试(听音辨词 + 智能干扰项生成算法)
-
书面测试(选择题 + 拼写模式)
-
智能复习模式(卡片翻转 + 三级评分动画)
-
错题本(自动收录 + 专项复习)
迭代 3 - 社交与激励
-
每日打卡系统(日历可视化)
-
精美打卡分享卡片(ImageRenderer 渲染)
-
成就系统(12 个勋章,铜银金三级)
-
学习排行榜
迭代 4 - 数据同步与服务端
-
Go 后端 API(用户、词库、进度、通知等)
-
Web 管理后台(词库审批、用户管理、数据统计)
-
iCloud 跨设备同步(时间戳冲突解决 + 集合合并策略)
-
服务端双向同步(Push/Pull)
迭代 5 - 部署与打磨
-
Docker 多阶段构建 + 安全加固
-
iOS Widget 桌面小组件
-
中英文国际化
-
暗色模式 + iPad 适配
第三步:Bug 修复——SOLO 最强的场景
项目开发完成后,我让 SOLO 做了系统性 Bug 扫描和修复,这是我觉得 SOLO 最惊艳的地方:
Plain Text
请全面检查这个项目的所有文件,找出所有 Bug
SOLO 逐文件扫描了 50+ 个源码文件,累计发现并修复了 80+ 个真实 Bug,包括:
-
数据安全:SQL 类型不匹配(bool Scan INTEGER 导致查询失败)
-
功能缺陷:导入接口不支持 JSON 格式、词库切换后重启丢失
-
并发问题:iCloud 同步后 UI 不刷新、非原子性数据库更新
-
安全漏洞:SSE 端点未检查用户禁用状态、设备令牌注销 404
-
编译错误:struct 中误用 weak self、方法定义在错误类型中
-
逻辑错误:多词库同名词误删、设置保存参数类型不匹配
每次修复后 SOLO 都会自动编译验证,确保修复正确。
踩过的坑
-
Go 的 bool vs SQLite 的 INTEGER:PostgreSQL 的 BOOLEAN 和 SQLite 的 INTEGER 在 Go 的
database/sql中行为不同,Scan到bool在某些场景下会失败。统一改为int+ 手动转换。 -
SwiftUI struct 中不能用 weak self:
DispatchWorkItem闭包中[weak self]在 struct 中编译报错,改用@State+playId计数器方案。 -
iCloud 同步不等于 UI 刷新:
NSUbiquitousKeyValueStore更新了 UserDefaults,但 SwiftUI 的@Published属性不会自动响应。需要手动调用刷新方法。 -
Docker restart ≠ rebuild:修改代码后只
docker compose restart不会生效,必须docker compose up --build。
4. 成果展示
技术架构:
-
iOS 客户端:SwiftUI + 20+ 视图文件
-
Go 后端:Gin + 16 张数据库表 + JWT + SSE
-
Web 管理后台:内嵌式管理界面(14 个功能页面)
-
部署:Docker Compose 一键部署
核心功能:
-
SM-2 间隔重复算法(标准实现,难度自适应)
-
听力测试(智能干扰项生成)
-
智能复习(卡片翻转 + 三级评分动画 + 触感反馈)
-
iCloud + 服务端双层同步
-
iOS Widget 桌面小组件
-
打卡分享卡片
-
成就系统(12 勋章)
-
中英文国际化
-
暗色模式 + iPad 适配
代码规模:
-
iOS:30+ Swift 文件
-
后端:15+ Go 文件
-
管理后台:1 个完整的单页应用
-
80+ Bug 修复记录
**5. 效果与总结
效果演示**:
提效数据:
-
传统全栈开发预估:2-3 个月
-
使用 SOLO 实际耗时:约 2 周
-
提效约 4-6 倍
SOLO 在我流程中做了什么:
-
架构师:技术选型、数据库设计、API 设计
-
编码伙伴:分模块迭代开发,每次聚焦一个功能
-
QA 工程师:系统性 Bug 扫描,发现 80+ 个问题并修复
-
代码审查员:修复引入的新问题,确保回归正确
可复用的方法论:
-
不要一次性生成所有代码:按模块迭代,每步验证
-
让 AI 做 Bug 扫描:这是 SOLO 最强的场景之一,远超人工效率
-
编译验证是底线:每次修改后必须编译通过
-
描述越具体,结果越好:告诉 SOLO 具体的文件、行号、期望行为









