Tips for Vibe Coding with Cursor: 别让 AI 猜你的心思

Posted on Sun 30 November 2025 in Journal

Abstract Tips for Vibe Coding with Cursor
Authors Walter Fan
Category learning note
Status v1.0
Updated 2025-11-30
License CC-BY-NC-ND 4.0

你以为它是大拿,其实它只是个只有九秒记忆的实习生

如果你和我一样,每天都在和 Cursor “相爱相杀”,那你一定有过这种崩溃时刻:你满怀期待地输入“帮我优化这个函数”,结果它反手给你删了一半逻辑,还贴心地加了一堆没用的注释。

这时候你可能会想:“这 AI 是人工智障吧?”

其实,问题可能不在 AI,而在我们怎么跟它说话。和 AI 协作,本质上是和一位极其聪明但没有任何项目背景的实习生结对编程。你不告诉它上下文,不给它规范,它自然只能“瞎猜”。

经过几个月的摸爬滚打,我总结了一套让 Cursor 从“猜谜模式”切换到“专家模式”的生存指南。

1. 别只给指令,要给“剧本” (Prompt Engineering + SDD)

很多人的 Prompt 是这样的:“帮我写个查询订单接口”。 这就像你对装修师傅说:“帮我装个门。” 结果师傅给你装了个哆啦A梦的任意门,你却想要个防盗门。

试试 R-CAR 框架 (Role-Context-Action-Result),把你的需求变成一个剧本:

  • Role (角色):你是资深后端架构师,擅长高并发场景。
  • Context (背景):我们在做电商大促,这个订单查询接口 QPS 很高,MySQL 扛不住,必须上 Redis 缓存。技术栈是 Java 17 + Spring Boot 3。
  • Action (行动):设计一个带缓存击穿保护的查询方案。
  • Result (结果):给我核心代码、异常处理逻辑,和一份简短的设计文档。

这种“喂饭级”的指令,AI 想跑偏都难。

更进一步,试试 SDD (Specification-Driven Development)。与其让 AI 直接撸代码,不如先让它写 JavaDoc接口定义。 “先别写代码,先帮我写出接口签名和详细的注释。” 这就好比签合同,先把需求框死在注释里,确认无误了,再让它填空。这样生成的代码,准确率能提升一个量级。

2. 测试用例是最好的“翻译官” (ATC + TDD)

自然语言是有歧义的,但代码没有。 与其费尽口舌解释“什么是正确的返回结果”,不如直接甩给它一个测试用例。

测试驱动开发 (TDD) 在 AI 时代简直是神器。 你写好 Given-When-Then: “当用户 ID 为 123 时,期待返回的 List 长度为 20,且按时间倒序排列。”

Cursor 一看:“懂了,这就按这个标准写实现。” 这比你写五百字的需求文档都管用。对于复杂的业务逻辑,用 Gherkin 语法写个 BDD 场景,AI 甚至能帮你补全边界测试。

3. 小步快跑,别一口吃成胖子 (增量开发)

千万别试图让 AI “一次性生成整个模块”。那绝对是灾难现场。 它会幻觉,会偷懒,会漏掉关键逻辑。

请遵循 PDCA 循环: 1. Plan:先让它设计接口。 2. Do:生成一个独立的小函数或小类。 3. Check必须人工 Review! 这一步绝不能省。用 Diff 工具扫一眼,有没有奇怪的引用?有没有安全漏洞? 4. Act:发现问题立刻让它改,改好了再进行下一步。

记住,AI 是你的副驾驶,方向盘还在你手里。

4. 给它足够的“上下文” (Context Engineering)

Cursor 虽好,但它不会读心术。 为啥有时候它生成的代码风格和你现在的项目格格不入?因为你没告诉它。

  • .cursorrules 是神器:在项目根目录建个文件,写上你的“家规”:
    • “必须用 Java 17 语法”
    • “数据库操作只能用 JPA”
    • “所有公共方法必须写 JavaDoc”
  • 善用 @ 引用:提问时,手动 @ 相关的类、接口或文件夹。你不把地图给它,它怎么知道路在哪?

5. 结语

和 Cursor 协作,不是为了偷懒,而是为了放大你的思考

最好的 AI 助手,不是那个最智能的,而是那个被你调教得最懂你的。 现在,试着换个方式跟它说话,你会发现,它其实比你想象的要能干得多。


本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。