用Cursor快一年了,从最初的"这不就是加了AI的VS Code嘛"到现在的"回不去VS Code了",中间经历了不少心态变化。这篇文章聊聊Cursor到底改变了什么、哪些场景真好用、哪些场景还是老老实实自己写。
Cursor改变了什么
最核心的变化是"写代码的粒度"变了。以前写代码是一个函数一个函数地写,现在是一个需求一个需求地描述。你告诉Cursor"帮我写一个用户注册的API,包含邮箱验证和密码强度检查",它直接生成整个接口的代码——路由、控制器、验证逻辑、错误处理,一步到位;
这不是简单的"自动补全",而是"自动实现"。自动补全帮你少打几个字,自动实现帮你少想几个小时;
真好用的场景
脚手架代码是最大的效率提升点。CRUD接口、数据模型定义、配置文件、测试用例——这些代码结构固定、逻辑简单、但写起来烦。Cursor生成这类代码的速度和质量都很好;
代码理解是被低估的能力。接手一个陌生项目时,直接问Cursor"这个函数的调用链是什么"、“这个模块依赖了哪些外部服务”,比自己grep和读代码快太多;
重构跨文件重构以前是噩梦。改一个接口定义要找所有调用方、改所有传参。Cursor能一次性帮你完成,省去大量重复劳动;
测试编写是Cursor的另一个强项。给定一个函数,让它生成覆盖各种边界情况的测试用例,质量经常比人写的还好——因为它不会"偷懒跳过"边界情况;
还是自己写的场景
复杂业务逻辑不适合让Cursor生成。业务规则的微妙之处(特殊条件、历史遗留的兼容逻辑)AI很难理解,生成的代码经常"看起来对但实际不对";
性能敏感代码需要人工优化。AI生成的代码通常是"正确优先",不一定考虑性能。热点路径的代码还是需要手写和profile;
架构决策不能交给AI。模块怎么划分、接口怎么设计、数据流怎么走——这些决策影响整个系统的演化,需要人来做;
实际工作流
我的日常用法是:
- 开新功能时,先用Cursor Composer描述需求,让它生成初始代码;
- 通读生成的代码,修正业务逻辑错误和边界情况;
- 用Cmd+L(对话模式)让Cursor解释我不理解的部分;
- 写测试时让Cursor生成初版,然后补充边界用例;
- 重构时让Cursor做跨文件修改,人工审查diff;
关键原则:Cursor生成的所有代码都要审查。不是"抽查",是"逐行审查"。AI可以帮你写代码,但代码的质量责任在你。
和其他AI编程工具的对比
Cursor vs GitHub Copilot:Copilot是补全工具,Cursor是编程环境。Copilot在你写代码时给建议,Cursor在你描述需求后直接给代码。两者定位不同,Cursor更激进,Copilot更保守;
Cursor vs Windsurf/Cline:思路类似,但Cursor的上下文理解能力目前最强,特别是对大型项目的理解;
Cursor vs Claude Code:Claude Code在终端里工作,适合运维和调试场景;Cursor在IDE里工作,适合日常开发。两者可以配合使用;
写在最后
Cursor不会让程序员失业,但会让"不会用AI编程工具"的程序员落后。就像IDE取代了记事本写代码、Git取代了手动管理版本一样,AI编程工具是下一个不可逆的趋势。早点拥抱,早点受益。