Tip
这是我真实用AI开发的学习经历,以下是一个小小的案例。
🧠 我用 AI 写博客搜索功能:从“能跑”到“能抗”的血泪成长记
作者:我,一个开发小白
工具:Trae CN(AI 编程助手)
关键词:AI编程、博客搜索、postList.json、性能优化、Trae CN、成长感悟
🎯 一开始,我只是想“搜得快一点”
我的博客最初只能搜标题,用户说:“搜不到内容,体验很差。”
我心想:“那就把全文内容也塞进 postList.json,一起搜呗!”
于是,我打开 Trae CN,用自然语言说:
“帮我改下 GitHub Actions,把文章全文也打进去,我要全文搜索。”
它秒回:“已生成脚本,是否应用?”
我点了“是”,心想:AI 真香。
🧨 现实给我一记重拳:无限大的 JSON 文件,卡成PPT的博客界面
✅ 1000 篇文章:丝滑
❌ 50000 篇:页面加载 8 秒,搜索页面卡主
那一刻,我第一次意识到:
“让 AI 跑起来”和“让 AI 跑得好”之间,隔着一万个坑。
🧠 我和 AI 的“拉锯式”优化之旅:从盲从到驯化
🔍 阶段一:AI 的“完美方案”把我吓退了
我:“Trae,文件太大,搜索卡,怎么办?”
它:“建议上 Elasticsearch + 倒排索引 + 分布式集群。”
我:“……我只是个静态博客。”
它:“那就 Node.js + SQLite FTS5 + 增量索引。”
我:“……我只是个 GitHub Pages。”
它:“那就 WebAssembly + Lunr.js + 索引分片。”
我:“……我只是个小白。”
那一刻,我第一次明白:
AI 不会替你兜底,它只会给你“技术上的正确答案”,而不是“适合你的答案”。
🧪 阶段二:我开始“驯化”AI,设边界、提约束
我不再问:“怎么优化搜索?”
我开始问:
- “给我一个纯前端方案,不引新库,不动后端,2 小时内能上线的。”
- “如果我只存前 500 字摘要,体积能降多少?”
- “能不能用 Fuse.js 做模糊匹配?我不想写正则。”
Trae CN 开始给出我能看懂、敢复制、能跑通的代码。
那一刻,我顿悟:
AI 不是架构师,它是“最勤快的实习生”
——你得告诉它“边界”,它才能给你“结果”。
✅ 阶段三:我亲手落地的“最小可行方案”
| 模块 | 原始方案 | 我的优化 | 技术点 |
|---|---|---|---|
| 数据源 | 全文塞进 JSON | 只存前 500 字摘要 + 关键词 | 体积降 90% |
| 搜索逻辑 | 前端遍历字符串 | 用 Fuse.js 模糊匹配 | 不引后端 |
| 加载策略 | 一次性加载 | 分页加载 + 虚拟滚动 | 首屏 <1s |
| 索引构建 | GitHub Actions 全量 | 增量更新 + 摘要生成 | 只改 3 行脚本 |
我没有写一行后端代码,也没有引任何重型库。
我只是一次次地问 AI,一次次地缩小范围,一次次地测试回滚。
🧰 Trae CN 使用感悟:它不是“神器”,是“镜子”
📌 我常用的 3 种提问模板(小白专用)
| 场景 | 模板 | 示例 |
|---|---|---|
| 生成代码 | “给我一个纯前端搜索组件,不引库,能搜 JSON” | ✅ 直接可用 |
| 解释报错 | “这段代码报错 Cannot read property of undefined 是为什么?” |
✅ 逐行解释 |
| 最小测试 | “帮我写一个最小单元测试,验证搜索函数是否返回结果” | ✅ 跑通 Jest |
⚠️ 我踩过的坑:AI 的“胡说八道”时刻
| AI 建议 | 我试了之后 | 结果 |
|---|---|---|
“用 localStorage 存索引” |
存了 18MB | 浏览器卡死 |
“用 fetch 流式加载” |
静态站不支持流 | 报错 404 |
“用 eval 动态执行搜索” |
被 CSP 拦截 | 直接白屏 |
这些坑让我明白:
AI 不会替你负责,它只会“给建议”
——跑不通的回滚,看不懂的不抄,测不过的不上线。
🧩 我的“AI 协作守则”:写给所有小白的 5 条血泪建议
| 守则 | 说明 | 图标 |
|---|---|---|
| ✅ 最小边界 | 每次只改一个点 | 🔍 |
| ✅ 可回滚 | 改前 git commit | 🧷 |
| ✅ 可测试 | 每步加 console.log | 🧪 |
| ✅ 不盲从 | AI 代码先读一遍 | 🧠 |
| ✅ 多方案 | 让 AI 给 3 个选项 | 🧭 |
📊 成果对比:优化前后
| 指标 | 优化前 | 优化后 | 提升 |
|---|---|---|---|
| 文件大小 | 18MB | 1.2MB | ↓ 93% |
| 首屏加载 | 8.2s | 1.1s | ↓ 86% |
| 搜索响应 | 卡死 | 200ms | ✅ 可用 |
| 用户留存 | 下降 40% | 回升 25% | ✅ 有效 |
🧭 我的 3 条成长感悟(只想记这段)
-
AI 不会替你写“好代码”,但会陪你写“能跑的代码”
剩下的,靠你设边界、做测试、敢回滚。 -
“能跑”不是终点,“能抗”才是目标
任何一个功能点,都要经历:需求 → 技术筛选 → 成本评估 → 最小上线 → 用户验证 → 再迭代。 -
小白用 AI,最怕的不是不会问,而是“盲信”
当你开始说“给我一个 2 小时内能上线的方案”,而不是“怎么优化搜索”时,你才真的在“用 AI”,而不是“被 AI 用”。
📎 附录:Trae CN 快速上手(小白版)
| 步骤 | 操作 | 图标 |
|---|---|---|
| ① 下载 | Trae CN 官网 | 📥 |
| ② 安装 | 一键安装,中文界面 | 🇨🇳 |
| ③ 提问 | “我有一个静态博客,想加一个前端搜索,不引库,怎么做?” | 💬 |
| ④ 测试 | 复制代码 → 跑本地 → 看控制台 | 🧪 |
| ⑤ 迭代 | 每改一步,问一次“有没有更小方案?” | 🔄 |
🎯 最后一句话,送给所有还在“踩坑”的小白
AI 不是神,它是你最勤快的实习生
——你负责想清楚,它负责干得快。
只要你敢设边界、敢回滚、敢测试,它就能陪你从“能跑”走到“能抗”。