写好写码 Prompt 的 6 条铁律

本节目标

6 条铁律:

① 给上下文:贴相关文件/接口/报错,别让 AI 凭空猜
② 定约束:语言/框架/风格/禁止项,越具体越好
③ 说清输出:要"完整文件"还是"只给 diff"?要测试吗?
④ 拆小步:一次只做一件事,避免大杂烩
⑤ 要可验证:明确要求"附带运行/测试方式"
⑥ 给样例:用"输入→期望输出"锚定行为

烂 vs 好:

烂: "帮我写个排序"
好: "用 JavaScript 写一个稳定的归并排序函数 mergeSort(arr),
     输入 number[],返回新数组不修改原数组;
     附 3 个调用示例与 node 可直接运行的完整文件。"

为什么有效:铁律①③ 消除"歧义"(AI 最怕模糊),④⑤ 把"生成"和"验证"绑死,⑥ 用样例把行为钉死,避免自由发挥。

名词解释

课后练习

  1. 把"写个登录页"改写成符合铁律的好 prompt。
    • 答案:"用 Vue3 <script setup> 写一个登录页组件 LoginView.vue,含用户名/密码两个字段与必填+邮箱格式客户端校验;不引第三方表单库;给出在已有 Vue 项目里引用它并 npm run dev 验证空值/错误格式提示的步骤。"
  2. 为什么"给样例(输入→输出)"能显著提质量?
    • 答案:样例把抽象需求变成具体行为锚点,AI 据此对齐你的真实期望,避免它按自己假设的语义自由发挥。

总结

写好 Prompt 不是"文采比赛",而是"消除歧义 + 绑定验证"的工程训练。六条铁律背后只有一个逻辑:LLM 是概率生成器,模糊的指令会放大随机性,精确的约束能把它锁在你想要的分布里。我特别看重铁律⑤"要可验证"——它把 AI 的产出从"我猜你满意"变成"你跑一下就知道对不对"。很多人抱怨 AI 写代码不行,其实是自己的 prompt 像在许愿。这一课的底层心智是:把 AI 当成一个能力极强但缺乏上下文、且不爱追问的初级工程师——你要做的,是把 brief 写得像给靠谱同事那样清楚。Prompt 写得好,Vibe Coding 就成功了一半。