~/VibeHandbook
免费 PDF

08 · 01

在给出任务之前先给出上下文

AI 没法像你那样看到你的项目。它不知道你的框架版本、你的文件结构,或者你早已确立的惯例。当你跳过这些时,它就靠猜——而且猜得很糟。更糟的是,它自信地猜。所以在它撞上你真实的代码库之前,输出看起来都挺像样。

对比同一个请求的这两个提示词。

添加一个校验邮箱的函数。
这是一个 TypeScript 后端,使用 Express,并用 Zod 做校验。
我们已经在 src/schemas/ 里用 Zod schema 校验输入。
按那种风格添加一个邮箱校验 schema。邮箱必须是
小写、最多 254 个字符,并拒绝来自 src/config.ts 里
现有 BLOCKED_DOMAINS 列表的一次性域名。

第一个提示词产出泛泛的代码,它可能用了一个你不想要的正则,风格也和你的代码库不匹配。第二个产出的代码你可以直接粘贴进去。规则是:陈述技术栈、惯例,以及 AI 应该复用的现有部件。

一个好的提示词把这些部件自下而上按顺序堆叠——上下文在底层,真正的请求靠近顶层:

        ┌──────────────────────────────┐
        │   示例                       │  一个输入 → 输出
        ├──────────────────────────────┤
        │   约束                       │  不该做什么
        ├──────────────────────────────┤
        │   边界情况                   │  空值、无效、错误
        ├──────────────────────────────┤
        │   输入 / 输出                │  类型与形态
        ├──────────────────────────────┤
        │   目标                       │  一个明确任务
        ├──────────────────────────────┤
        │   上下文                     │  技术栈、文件、模式
        └──────────────────────────────┘
              先打地基 ▲

在你敲下回车之前,一份有用的心理清单:语言和框架(如果版本要紧就连版本一起),相关的文件或模块,项目里已有的模式,以及 AI 该偏好或该避开的库。不必每次都凑齐这四样——但如果答案会因其中之一而改变,就把它点出来。拿不准时,把新代码要适配的那个真实签名、类型或配置直接粘上去。几行现有代码教给 AI 的惯例,远胜过一整段描述。

想离线阅读?

免费下载整本书的 PDF 或 EPUB。