Skip to content

避坑实录 ​

晨悦·生活小程序前端跟做时,AI 生成代码的高频坑与补救——每条都配「你怎么说」。

AI CODING · 场景二 · 验收与纠错

生成不是终点。看 diff 范围 → 跑预览 → 贴原文纠错。假完成比写错更危险。

节奏 每卡一验优先 范围 > 细节
看坑位 →
本节要点
  • 每次生成后的四步验收节奏
  • 高频坑 + 原话纠错表
  • 「今天吃什么」五步手工剧本 + 回滚话术

验收四步(每次生成后) ​

  1. 看 diff:是否超出 Prompt 允许文件
  2. 跑预览:主路径是否点通
  3. 看控制台:红字原样贴回
  4. 再发下一句 — 不要攒三个问题一次甩

同一处磨超过三轮:先回滚,再把任务拆小。不要继续「再优化一下」。

坑位表 ​

坑症状你怎么纠
一次生成整站目录爆炸、引用缠在一起「只改 Prompt 列出的文件,其它全部还原。」
组件里写路由卡片无法复用「卡片只 emit id,跳转留给页面。」
Mock 字段漂移列表有数据、详情空白「列表与详情共用同一 mock 字段名,先贴两端 JSON。」
引入重 UI 库安装很久、体积暴涨「不要新增 UI 库;用现有标签 + 少量 CSS。」
静默改类型MealSceneId 变 string「用餐场景 id 必须是约定枚举,不要放宽。」
筛选写进组件换页要复制逻辑「筛选回 domain 纯函数,组件只展示。」
假完成「做好了」但点不通「按主路径点三步;把控制台原文贴回来。」
改依赖「顺便升级」lockfile 巨 diff「还原 package.json/lockfile,业务 diff 单独保留。」
做成阶段推荐出现孕期 / 宝宝月龄按钮「本切片是今天吃什么;用餐场景枚举,不要阶段。」

主路径手工验收脚本 ​

在开发预览里按顺序做,打勾再收工:

  1. 打开首页,默认用餐场景有列表(或引导先选场景)
  2. 切到「一人食」,列表条数变化且菜名合理
  3. 点第一张卡(如番茄炒蛋),详情标题与列表一致,有小贴士
  4. 地址栏或路由改成不存在的 id,看到空态而不是白屏
  5. 返回列表,场景选择仍在(若本切片已做持久化;未做则可忽略)

Diff 审查口诀 ​

text
范围? → 契约? → 真源? → 导航? → 依赖?
  1. 范围:是否超允许文件
  2. 契约:props/事件是否被放宽
  3. 真源:是否出现第二套 mealScenes
  4. 导航:跳转是否漏在卡片里
  5. 依赖:是否偷改 package.json

五问都过,再谈样式与文案。

给 AI 的纠错 Prompt ​

给 AI · 纠错 · 贴现象不重述需求
text
【现象】
- 我点了:…
- 期望:…
- 实际:…
- 控制台/报错原文:

【约束】
- 只改与该现象相关的最少文件
- 不重构、不换栈、不新增依赖

【请你】
1. 根因一句话
2. 最小 diff
3. 我应再点哪一步确认修复

一场翻车对话(对照) ​

坏:「列表不对,你再优化一下。」→ AI 大改首页 + 换筛选 + 动 Mock → 多轮空转。

好:

text
【现象】选 solo 后仍看到只标了 family 的菜
【期望】只显示 sceneIds 含 solo 的项
【实际】混入家庭专属项
【约束】只改 domain 筛选或首页调用处;不改组件
【请你】根因一句话 + 最小 diff + 我再切用餐场景如何确认

回滚话术 ​

diff 已经脏到看不下去时:

text
请停止继续修改。
把本次 Prompt 允许范围之外的文件全部恢复到任务开始前。
只保留 ScenePicker / DishCard / 首页 的必要改动。
恢复后用 git status 列表给我核对。

场景二收工检查 ​

  • [ ] architecture 与真实目录一致
  • [ ] 两组件契约未被放宽
  • [ ] 主路径手工五步通过
  • [ ] 无无关 lockfile 变更
  • [ ] 工作记录里存着用过的Prompt 原文
  • [ ] 页面文案是用餐场景,不是「宝宝阶段」

通用坑 → 常见坑与补救。后端字段对齐 → 场景三。

晨悦 AI 实践手册