写好写码 Prompt 的 6 条铁律
本节目标
- 掌握写码 Prompt 的 6 条铁律
- 能改写一段"烂 prompt"成"好 prompt"
- 理解为什么"上下文 + 约束 + 输出格式"如此关键
6 条铁律:
① 给上下文:贴相关文件/接口/报错,别让 AI 凭空猜
② 定约束:语言/框架/风格/禁止项,越具体越好
③ 说清输出:要"完整文件"还是"只给 diff"?要测试吗?
④ 拆小步:一次只做一件事,避免大杂烩
⑤ 要可验证:明确要求"附带运行/测试方式"
⑥ 给样例:用"输入→期望输出"锚定行为烂 vs 好:
烂: "帮我写个排序"
好: "用 JavaScript 写一个稳定的归并排序函数 mergeSort(arr),
输入 number[],返回新数组不修改原数组;
附 3 个调用示例与 node 可直接运行的完整文件。"为什么有效:铁律①③ 消除"歧义"(AI 最怕模糊),④⑤ 把"生成"和"验证"绑死,⑥ 用样例把行为钉死,避免自由发挥。
名词解释
- Prompt(提示词):你给 AI 的指令与上下文。质量直接决定产出质量——"垃圾进垃圾出"在 LLM 上尤其明显。
- 约束(Constraint):明确限制条件(框架、风格、禁止做的事)。它把 AI 的"创作空间"收窄到你要的范围,减少跑偏。
- 可验证输出(Verifiable Output):要求 AI 同时给出"怎么运行/测试",让产出从"看起来对"变成"可证伪"——这是质量控制核心。
课后练习
- 把"写个登录页"改写成符合铁律的好 prompt。
- 答案:"用 Vue3
<script setup>写一个登录页组件 LoginView.vue,含用户名/密码两个字段与必填+邮箱格式客户端校验;不引第三方表单库;给出在已有 Vue 项目里引用它并npm run dev验证空值/错误格式提示的步骤。"
- 答案:"用 Vue3
- 为什么"给样例(输入→输出)"能显著提质量?
- 答案:样例把抽象需求变成具体行为锚点,AI 据此对齐你的真实期望,避免它按自己假设的语义自由发挥。
总结
写好 Prompt 不是"文采比赛",而是"消除歧义 + 绑定验证"的工程训练。六条铁律背后只有一个逻辑:LLM 是概率生成器,模糊的指令会放大随机性,精确的约束能把它锁在你想要的分布里。我特别看重铁律⑤"要可验证"——它把 AI 的产出从"我猜你满意"变成"你跑一下就知道对不对"。很多人抱怨 AI 写代码不行,其实是自己的 prompt 像在许愿。这一课的底层心智是:把 AI 当成一个能力极强但缺乏上下文、且不爱追问的初级工程师——你要做的,是把 brief 写得像给靠谱同事那样清楚。Prompt 写得好,Vibe Coding 就成功了一半。