← 返回博客
·AI工具

用 Cursor 写了三个月代码,说点实话

AI 编程助手不是银弹,但用对了确实能提速。分享我在 Cursor 上的真实使用经验:哪些场景真的好用、哪些时候是在帮倒忙、prompt 怎么写才有用。

#Cursor#AI编程#LLM#开发工具

先说结论

Cursor 值得用,但别把它当「自动写代码机器人」。它是个很强的中级程序员搭档——能帮你写样板代码、解释复杂逻辑、重构函数——但你得知道自己在干什么,否则它给你埋的坑比帮你省的工时多。


最适合 Cursor 的场景

1. 写样板代码 / CRUD

这是 Cursor 最强的场景,没有之一。你定义一个 Prisma schema,然后说「帮我生成对应的 REST API routes,包括 CRUD 和参数校验」,它能一次生成差不多能用的代码。10 秒内生成 80 分可用的代码,剩下的 20 分是改边界情况和加测试——这已经省了大量时间。

2. 解释你不熟悉的代码

接手了一个没人维护的老项目,满屏意大利面条式代码。选中一段,Cmd+L 问「这段在干什么,有没有明显的问题」。比自己一行行读快 5 倍,而且它会指出潜在 bug。

3. 重构

选中一段 100 行的函数,说「把这段拆成几个语义清晰的小函数,保持原有逻辑不变」。Cursor 做得相当好,比我自己小心翼翼地改更有信心。


Cursor 会坑你的场景

1. 复杂业务逻辑

业务逻辑越复杂,Cursor 越容易「自信地胡说八道」。它生成的代码看起来像那么回事,变量名都起得很合理,但核心逻辑可能是错的。

**血泪教训**:让 Cursor 帮我写一个基于时间窗口的限流中间件,它生成了一段看起来完全合理的代码,我 review 的时候也没发现问题。上线后发现限流完全没生效——它用的时间戳单位是秒,但我们的时间窗口是毫秒级的。

从此之后的规矩:**Cursor 生成的任何涉及业务逻辑的代码,必须人工走读一遍,最好再写个测试**。

2. 性能关键路径

Cursor 不在乎性能,它只在乎「能跑」。让它写一个处理大文件的脚本,它会用最简单直接的方式——比如把整个文件读进内存。

如果你没明确说「注意性能」,它不会主动优化。

3. 安全问题

Cursor 生成的代码经常有安全隐患:SQL 拼接、没做 input sanitization、JWT 验证漏了 edge case。**永远不要直接把 Cursor 生成的代码推到 main 分支**。


Prompt 技巧

核心原则:**给上下文、给约束条件、说清楚你想要什么**。

坏问题:「帮我写一个登录功能」

好问题:「用 NextAuth.js 实现邮箱+密码登录,密码用 bcrypt 加密,session 存在 Redis,给我完整的 route handler 和错误处理」

利用 @ 符号引用上下文——Cmd+L 打开聊天框之后,用 @ 引用文件、文档、甚至整个文件夹。这比把代码复制粘贴进聊天框强太多。


Tab 补全 vs Cmd+K vs Cmd+L

  • Tab 补全:写已知模式代码,每分钟好几次,最被低估的功能
  • Cmd+K(Edit):修改选中代码、加功能,每半小时几次
  • Cmd+L(Chat):解释代码、架构讨论,每小时一两次
  • Tab 补全用熟了之后,写代码的感觉像是「和 AI pair programming」。比 Copilot 的补全准——可能是因为 Cursor 用了更大的上下文窗口。


    模型选择

  • Claude Sonnet 3.7:代码质量更高,逻辑更严谨。写复杂业务逻辑的时候用 Claude。
  • GPT-4o:速度更快,对常见模式更熟悉。写样板代码的时候用 GPT-4o。
  • 我现在默认用 Claude,只有在等得有点烦的时候才切换到 GPT-4o。


    最后的建议

  • **把 Cursor 当初中级程序员用**,不要当架构师用
  • 2. **每次生成代码都 review**,重点看边界情况和错误处理

    3. **Tab 补全用起来**,这是最自然的 AI 辅助编程体验

    4. **如果它连续两次没理解你的意思**,换个说法,或者干脆自己写

    AI 编程助手不会改变「编程需要思考」这件事。但它会让思考之后的实现快很多。

    *你们用 Cursor 或者其它 AI 编程助手有什么心得?评论区见。*