Cursor 与 AI 编程:我过去一年的工作流进化
从 Copilot 到 Cursor,从代码补全到 Agent 模式。分享我如何用 AI 重构开发工作流,以及为什么我认为 AI Native IDE 是编程的未来。
从怀疑到依赖
一年前,我对 AI 编程工具的态度是:有趣的玩具,但不实用。
那时候我用 GitHub Copilot,它像个聪明的自动补全工具,能写出不错的函数,但经常需要我修正。它帮我省了点打字时间,但并没有改变我编程的方式。
直到我遇到 Cursor。
现在,Cursor 已经成为我唯一的 IDE。不是「主要用」,而是唯一用。VS Code 已经两个月没打开过。
这篇文章记录我这一年的工作流进化,以及为什么我认为 AI Native IDE 是编程的未来。
三个阶段:补全 → 对话 → 代理
我的 AI 编程体验可以分为三个阶段,每个阶段都彻底改变了我的工作方式。
阶段一:代码补全(Copilot 时代)
能力边界:预测下一行代码
Copilot 的工作原理是「基于上下文补全」。你写注释,它生成代码;你写函数签名,它实现函数。
典型场景:
// 写一个函数,把用户数组按年龄分组
function groupByAge(users: User[]): Map<number, User[]> {
// Copilot 在这里给出补全建议
const groups = new Map<number, User[]>();
for (const user of users) {
const age = user.age;
if (!groups.has(age)) {
groups.set(age, []);
}
groups.get(age)!.push(user);
}
return groups;
}
价值评估:⭐⭐⭐(省时间,但不改变流程)
阶段二:对话编程(Cursor Chat 时代)
能力边界:理解需求,生成代码块
Cursor 的 Chat 功能(基于 Claude)让我可以用自然语言描述需求,AI 生成完整代码。
典型场景:
我:「帮我在这个组件里加一个虚拟滚动,列表可能有几千条数据」
Cursor:
- 分析当前代码结构
- 识别列表组件位置
- 引入 react-window 或 @tanstack/react-virtual
- 生成虚拟滚动实现
- 说明需要安装的依赖
关键突破:我不需要手动查找库、看文档、写实现。AI 直接给出完整方案。
价值评估:⭐⭐⭐⭐⭐(改变工作流程,大幅提升效率)
阶段三:代理模式(Cursor Agent 时代)
能力边界:自主规划、执行、修复
这是最近 Cursor 推出的 Agent 模式,也是我认为最革命性的功能。
典型场景:
我:「把项目从 React Router v5 升级到 v6,包括所有 breaking changes 的处理」
Cursor Agent:
- 读取 package.json 确认当前版本
- 查看官方迁移指南
- 创建升级计划(改哪些文件、什么顺序)
- 逐个文件修改代码
- 运行测试验证
- 如果遇到错误,自动修复
- 完成后给出总结
这不是对话,这是委托。
价值评估:⭐⭐⭐⭐⭐⭐(颠覆性,重新定义编程)
我的工作流重构
使用 Cursor 一年后,我的开发流程完全变了:
以前的工作流
需求 → 查文档 → 写代码 → 调试 → 查 Stack Overflow → 改代码 → 测试
↑___________________________________________↓
痛点:
- 大量时间花在文档查阅
- 语法细节占用注意力
- 样板代码重复劳动
- 调试循环耗时长
现在的工作流
需求 → 描述给 AI → 审查/调整 AI 输出 → 验证
核心变化:
- 从「写代码」到「审代码」:我变成代码审查者,AI 是初级开发者
- 从「查文档」到「问 AI」:自然语言替代文档检索
- 从「调试」到「验证」:AI 先自测,我验证结果
具体效率提升
| 任务类型 | 以前时间 | 现在时间 | 提升 |
|---|---|---|---|
| 实现新功能 | 4 小时 | 1 小时 | 4x |
| 代码重构 | 3 小时 | 30 分钟 | 6x |
| Bug 修复 | 2 小时 | 20 分钟 | 6x |
| 写测试 | 1 小时 | 10 分钟 | 6x |
| 代码审查 | 30 分钟 | 10 分钟 | 3x |
Cursor 核心功能深度使用
1. Cmd+K:行内编辑
选中代码,按 Cmd+K,直接说需求:
- 「把这段代码改成 async/await」
- 「添加错误处理」
- 「用 lodash 的 throttle 包装这个函数」
使用频率:每天 50+ 次
2. Cmd+L:侧边栏对话
复杂任务用侧边栏,保持上下文:
- 分析整个文件的问题
- 跨文件的 refactoring
- 架构讨论和建议
技巧:用「@」引用文件、符号、文档,让 AI 有更多上下文
3. Composer:多文件编辑
需要修改多个文件时,Composer 是神器:
我:帮我添加用户认证功能
Composer 计划:
1. [auth.ts] 创建认证服务
2. [middleware.ts] 添加路由保护
3. [Login.tsx] 创建登录组件
4. [types.ts] 添加用户类型定义
5. [package.json] 安装依赖
执行 → 一键应用所有修改
使用频率:每周 10+ 次大型重构
4. 自动补全 2.0:Tab 预测
Cursor 的 Tab 不是简单的语法补全,而是意图预测。
它会:
- 预测你下一步想做什么
- 生成多行代码
- 理解注释意图
- 跨文件引用符号
使用频率:每天 200+ 次(几乎每次输入)
AI 编程的最佳实践
1. 上下文管理
AI 的效果取决于上下文质量:
好的做法:
- 先让 AI 阅读相关文件(@file)
- 描述业务背景,不只是技术需求
- 提供示例输入输出
- 说明约束条件(性能、兼容性等)
不好的做法:
- 直接说「修复这个 bug」,不提供上下文
- 期望 AI 猜到你的意图
- 不给约束,让 AI 自由发挥
2. 渐进式委托
不要一开始就让 AI 做复杂任务,要渐进式建立信任:
Week 1: 让 AI 写简单函数
Week 2: 让 AI 写组件
Week 3: 让 AI 做小型重构
Week 4: 让 AI 实现完整功能
Week 5+: 使用 Agent 模式做复杂任务
3. 审查与验证
永远不要完全信任 AI 代码:
我的审查清单:
- 边界条件处理了吗?
- 错误处理完备吗?
- 有潜在的性能问题吗?
- 类型定义正确吗?
- 符合项目规范吗?
验证策略:
- 让 AI 生成测试(它很擅长)
- 手动测试边界情况
- 代码审查工具(ESLint, TypeScript)
4. 提示工程
好的提示 = 好的结果:
模板:
【任务】实现用户认证系统
【背景】这是一个 Next.js 项目,使用 Prisma 和 PostgreSQL
【需求】
- 支持邮箱密码登录
- 支持 JWT token
- 需要密码加密存储
- 需要登录状态保持
【约束】
- 使用 bcryptjs 加密
- 使用 jose 处理 JWT
- 代码放在 app/api/auth 目录
【示例】输入:{ email: "user@example.com", password: "123456" }
输出:{ token: "...", user: { id, email } }
常见误区与避坑指南
误区一:完全依赖 AI
问题:有些人用 AI 后自己不再思考,导致代码质量下降。
解决:AI 是助手,不是替代。核心逻辑还是要自己理解。
误区二:不验证直接提交
问题:AI 会犯错,有时是 subtle 的 bug。
解决:强制代码审查流程,测试覆盖率要高。
误区三:提示太模糊
问题:「帮我优化这段代码」→ AI 不知道优化什么。
解决:具体说明优化目标:性能?可读性?类型安全?
误区四:忽视安全
问题:AI 可能生成不安全的代码(SQL 注入、XSS 等)。
解决:安全敏感代码必须人工审查。
AI 编程的未来
基于这一年的体验,我对未来的预测:
1. 编程语言的重要性下降
自然语言将成为「高级编程语言」,具体语法由 AI 处理。
2. 架构师 > 程序员
人类负责架构设计、需求分析、代码审查;AI 负责实现。
3. 一人团队成为可能
AI 让个人开发者拥有团队级的产出能力。
4. 新技能变得重要
- 提示工程:如何有效与 AI 沟通
- 代码审查:快速评估 AI 代码质量
- 架构设计:高层次的系统设计能力
工具对比:Cursor vs 其他
| 工具 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| Cursor | 功能完整,体验流畅 | 需要学习新 IDE | 主力开发 |
| GitHub Copilot | 与 VS Code 深度集成 | 功能较简单 | 轻量辅助 |
| Windsurf | Cascade 模式强大 | 相对较新 | 复杂任务 |
| Claude Code | Claude 3.5 强大 | CLI 体验 | 脚本任务 |
我的选择:Cursor 为主,Claude Code 为辅。
迁移建议
如果你想开始使用 AI 编程:
Week 1: 适应期
- 安装 Cursor
- 用 Tab 补全代替传统补全
- 尝试 Cmd+K 做简单编辑
Week 2: 探索期
- 使用 Chat 功能解决实际问题
- 学习如何写有效提示
- 建立审查习惯
Week 3: 熟练期
- 尝试 Composer 做多文件编辑
- 用 AI 生成测试和文档
- 重构旧代码
Week 4+: 精通期
- 使用 Agent 模式做复杂任务
- 建立个人提示库
- 优化工作流
结论
一年前,我花了 80% 时间写代码,20% 时间思考。
现在,我花了 20% 时间写代码,80% 时间思考。
这就是 AI 编程带来的转变:从执行者到设计者。
Cursor 不是让程序员失业的工具,而是让程序员更强大的工具。
如果你还没尝试,现在就是最好的时机。
参考链接:
本文 80% 的内容是在 Cursor 辅助下完成的,包括代码示例、表格生成和结构优化。