前言
本人自去年10月起重度使用 AI Coding,历经毕业设计(深度学习/模型融合)、React + TypeScript、Flutter、微信小程序及安卓开发等多个领域。在一年多的实战中,我总结了一套减少"屎山代码"、提升开发效率的 Vibe Coding 经验,主要侧重于前端与流程控制。
1. 动笔前的核心:构思与设计闭环
在让 AI 写代码之前,必须先理清整体框架,切忌盲目开工。
逻辑先行
不要只盯着界面长什么样,更要明确用户的操作流程。例如:如何点击、如何输入、数据流向哪里。必须确保整个交互流程是闭环的,提前预判并解决逻辑冲突点(这些细节往往在实际上手测试时才会暴露,提前构思能大幅减少返工)。
视觉具象化
推荐先用笔画草图,然后将草图配合文字描述发送给前端 AI 设计工具。
精确指令
提供具体的配色方案(如 #XXXXXX 颜色代码)和布局细节(如"底部圆角矩形导航栏")。AI 根据图片生成的界面往往比纯文字描述更精准。
2. 上下文投喂:从设计稿到 Trae
当你在 AI 设计工具中完成了满意的 UI 调整后,如何将其无缝迁移到 Trae?
- 素材准备:下载设计好的 HTML 文件并解压。
- 精准投喂:将每一个界面的 HTML 拖入 Trae 的工作目录。
- 建立认知:明确告诉 Trae:"这个 HTML 是参考界面,包含哪些按钮,点击后跳转到哪里"。
- 复现与微调:即使目标代码不是 HTML(如 React 或 Flutter),也可以让 Trae 严格参考该 HTML 的布局进行 1:1 复现。复现后,可配合浏览器预览,选中具体元素发给 Trae 进行像素级的微调。
3. 需求文档策略:原子化与 Human-in-the-loop
需求文档的质量直接决定了代码的质量,越详细越好。
人机协作(Human-in-the-loop)
可以先写一个简单的草稿,让 AI 扩充,但必须要人工审核。尽管 AI 理解能力很强,但为了防止方向性错误,人工把关是必不可少的。
原子化切分
建议主动要求 Trae 将需求切分为一个个"原子化"的任务。
分阶段实现
不要试图一次性生成所有功能。分阶段编写代码的好处在于,一旦出现重大错误,你可以回滚到上一个健康的"存档点",而不是推倒重来。
4. 纠错技巧:逆向约束法
当 AI 在某个功能上反复出错,或者一直曲解你的意图时:
- 及时撤回:不要基于错误的代码继续对话,立即撤回该次生成。
- 添加"禁止项":在原始提示词(Prompt)中显式添加"禁止 XXX"或"不要使用 XXX 方法"。
- 迭代修正:这种"负面约束"能有效防止 AI 再次掉入同样的逻辑陷阱。如果仍有偏差,继续迭代提示词,直到逻辑完全对齐。
5. 陷入死循环时的"暂停思考"
如果一个报错让 AI 修复了多次(消耗了多个最大思考长度)仍未解决,或者你输入了好几个"继续"它还在原地打转:
- 强制叫停:此时 AI 可能已经糊涂了,不要盲目让它继续试错。
- 引导反思:停下来问 AI 三个问题:"当前具体的报错是什么?"、"是哪个代码文件出了问题?"、"你觉得应该怎么解决?"。
- 理清思路:帮助 AI 重新梳理上下文,往往能跳出死循环,找到真正的解决方案。
6. 特定框架开发:文档先行
在开发微信小程序、安卓、鸿蒙或使用 LangGraph 等特定框架/库时:
- 避免幻觉:AI 可能会因为不熟悉特定语法而瞎编代码(幻觉)。
- 喂养文档:直接让 AI 开发前,先让它阅读相关的官方文档或语法指南。例如 iOS 开发可以利用 MCP 工具加载 Swift 语法,鸿蒙或 LangGraph 1.0 同理。
- 参考系:给 AI 一个准确的语法 Docs 作为参考系(Context),能极大降低写出"屎山代码"的概率。
总结
Vibe Coding 的核心在于:先构思后动手、精准投喂上下文、原子化需求、善用负面约束、及时暂停反思、以及文档先行。掌握这些技巧,你将能更高效地与 AI 协作,写出更优质的代码。