👇大家好,我是牧码,爱你们muma~👇
大多数人使用Cursor的方式是错误的。他们把AI编程工具当作魔术棒,期待它能凭空变出完整的应用。但这种想法就像期待计算器能自动解决微积分问题一样不切实际。真正有效的方法与直觉相反:约束越多,结果越好。
我注意到编程助手工具的使用方式存在一个有趣的悖论:大多数人越想让AI发挥"创造性",最终得到的代码质量反而越差。
把AI当作什么
最近Cursor的设计总监Ryo Lu发布了使用指南,这让我思考AI编程的本质。我认为理解AI编程工具的关键是认识到它们不是什么——它们不是独立的开发者,而更像一个"聪明但初级的实习生"。
聪明的实习生可以快速完成具体任务,但需要清晰的指导和边界。给他们太多自由,你会花一周时间修复他们的代码;给他们明确的框架,他们能创造惊人的结果。
这种思维方式完全颠覆了大多数人对AI编程的理解,但实践证明这更接近真相。
12条核心法则:从理念到实操
让我们深入探讨Ryo Lu分享的这12条法则,并提供详细的实操指南:
1. 设立明确的项目边界
原则 :在项目开始前设定5-10条清晰规则。
实操步骤 :
- 使用命令
/generate rules
自动生成项目约束 - 创建
.cursor/
文件夹存放设计文档和架构图 - 明确指定技术栈、编码规范和禁止事项
示例规则 :
- 使用React 18 + TypeScript 4.9+
- 禁止使用var,强制使用ES6语法(const/let)
- 所有组件必须使用函数式组件而非类组件
- API请求必须使用axios,并实现统一的错误处理
- 状态管理使用Redux Toolkit,禁止使用context滥用
这种明确边界能让AI从"随机发挥"转向"有序创造"。
2. 提供精确指令而非模糊需求
原则 :模糊指令只会得到模糊结果,精确指令才能得到精确代码。
指令公式 :技术栈 + 行为要求 + 限制条件
对比示例 :
- ❌ 模糊提示:"写一个登录功能"
- ✅ 精确提示:"使用React+TypeScript实现OAuth2.0登录组件,不依赖第三方库,按钮需支持暗黑模式"
关键要素 :
- 明确指定使用的框架和语言版本
- 详细描述功能行为和边界条件
- 说明性能要求和兼容性限制
- 指定代码风格和设计模式
精确的指令能减少返工次数,提高首次成功率。
3. 单文件聚焦策略
原则 :一次处理一个文件,而非整个系统。
实战流程 :
- 从核心组件开始,遵循"生成→测试→评审→下一步"
- 完成一个文件后再移动到下一个
- 构建电商系统时,先完成"购物车组件",再处理"商品列表"
实际示例 :
// 第一步:先实现购物车组件
@file:src/components/Cart.tsx
请实现一个购物车组件,要求:
1. 支持商品数量增减
2. 计算总价
3. 支持商品移除功能
// 完成后再进行:
@file:src/components/ProductList.tsx
...
这种逐个攻破的方法能防止代码质量"整体崩溃"。
4. 测试驱动开发:给AI明确目标
原则 :先写测试,再生成代码。
具体步骤 :
- 手动编写Jest或Vitest测试用例
- 将测试用例展示给AI,要求实现满足测试的代码
- 测试失败时,直接将错误信息反馈给AI进行修复
测试示例 :
test('购物车计算总价功能', () => {
const cart = new ShoppingCart();
cart.addItem({ id: 1, name: '商品A', price: 100, quantity: 2 });
cart.addItem({ id: 2, name: '商品B', price: 50, quantity: 1 });
expect(cart.getTotalPrice()).toBe(250);
});
这种"测试为王"的方法是给AI最有效的约束,同时也是确保代码质量的最佳保障。
5. 直接修正错误并标记"正确做法"
原则 :AI从实际修改中学习的速度远超文字解释。
实操技巧 :
- 发现错误直接修复,而非长篇解释
- 使用
@fixed
注释标记你的修正 - 附加简明规则防止同类错误
示例 :
// @fixed: 添加JWT鉴权头,所有API调用必须包含认证信息
const api = axios.create({
headers: {
'Authorization': `Bearer ${getToken()}`
}
});
这种即时反馈能快速校准AI的行为模式,10次修改比1次长篇解释更有效。
6. 精准定位代码上下文
原则 :使用特定命令限定AI的工作范围。
常用命令 :
@file:utils.js
- 聚焦单文件修改
@src/components
- 限定修改范围到特定目录
@git#main
- 对比主分支变更
@scope:auth
- 将上下文限定到认证相关功能
使用场景 :
@file:src/utils/validation.js
请优化表单验证函数的性能,但保持现有API不变
这些命令能有效防止AI"过度发挥",避免修改A模块却影响B模块的情况。
7. 构建完整的AI参考系统
原则 :将设计文档和任务清单放在 .cursor/
文件夹中。
文件结构示例 :
.cursor/
docs/
architecture.md # 系统架构图
component-specs/ # 组件规格说明
api-schemas/ # API接口定义
checklist.md # 任务清单
最佳实践 :
- 随代码更新及时维护文档
- 在提示中引用具体文档:
@.cursor/docs/api-schemas/user.md
- 使用标准化的文档格式便于AI理解
这些文档能让AI"知道接下来该做什么",减少你不断重复解释的时间成本。
8. 行动胜于解释的修正方法
原则 :少说多做,展示正确做法比解释为何错了更有效。
实例方法 :
- 遇到低效算法,直接重写并注释:"优先使用quicksort,禁用bubble sort"
- 发现安全漏洞,立即修复并标记:"所有用户输入必须经过sanitize"
- 代码风格问题,重构后注明:"遵循项目ESLint规则,禁用嵌套三元表达式"
AI能快速从你的实际修改中学习模式,而非抽象概念。
9. 利用历史记录持续迭代
原则 :回顾并更新旧的prompt,无需每次从零开始。
实用技巧 :
- 使用
/history
命令调取过往对话 - 将常用提示整理成模板:
@templates/react-component.md
- 根据项目进展更新提示模板
模板示例 :
创建React组件,要求:
1. 使用TypeScript
2. 实现以下props接口: {interface}
3. 包含单元测试
4. 符合项目Storybook文档规范
这种迭代式对话能让AI持续积累对你项目的理解,大幅提高长期效率。
10. 针对任务选择合适的AI模型
原则 :不同模型有不同专长,根据任务性质灵活切换。
模型特点对比 :
- Gemini :高精准度,适合算法实现和逻辑密集型任务
- Claude :理解更广泛,适合创意型任务(UI设计、文案创作)
- GPT-4 :综合能力强,但在特定领域可能不如专业模型
任务分配示例 :
- 数据处理算法 → Gemini
- 设计系统文档 → Claude
- 全栈开发任务 → GPT-4
根据任务特性选择模型能最大化AI的价值。
11. 外部知识整合技巧
原则 :面对不熟悉的技术栈,提供官方文档链接。
操作方法 :
@https://reactjs.org/docs/hooks-effect.html
请根据React官方文档,解释useEffect的依赖数组更新规则,并修复以下代码:
实际应用 :
- 贴上TypeScript文档链接解决类型错误
- 提供框架官方示例解决架构问题
- 引用库文档说明正确用法
这种外部知识整合能有效弥补AI知识库可能存在的局限性。
12. 大型项目的特殊策略
原则 :大项目先让Cursor完成索引,再限定上下文范围。
实施步骤 :
- 项目首次打开,给AI足够时间完成索引(通常overnight)
- 使用范围限定命令聚焦核心模块:
@scope:core
- 优先处理高频访问的代码路径
实用命令 :
@scope:auth @file:src/services/auth.ts
优化登录流程,减少API调用次数
这种"预索引+限定范围"的策略能大幅提升AI在复杂项目中的响应速度。
为什么大多数人使用AI编程工具的方式是错的
传统观点认为,AI应该自己弄清楚一切,而开发者只需要提出大致需求。这种想法的问题在于它忽视了软件开发的本质。
软件开发从来不只是编写代码,而是理解问题、设计解决方案,然后实现它。当你期待AI完成整个过程时,你实际上是在要求它用有限的上下文理解无限的可能性。
这就像给一个聪明但新手的程序员一个模糊的需求,然后期待完美的结果。没有哪个人类程序员能在如此条件下表现好,为什么AI就能呢?
实践中的表现差异
让我们看一个具体例子。两个开发者想要实现一个登录功能:
开发者A说:"实现一个登录功能。"
开发者B说:"使用React+TypeScript实现OAuth2.0登录组件,不依赖第三方库,按钮需支持暗黑模式。"
开发者A可能得到能工作但充满问题的代码,而开发者B更可能得到精确满足需求的实现。差别不在于AI的能力,而在于人类提供的上下文和约束。
系统性方法:从修复到预防AI意大利面代码
基于上述12条法则,可以构建一个完整的工作流程:
- 准备阶段 :
- 创建项目规则文档
- 设立文档结构
- 设定代码风格约定
- 开发阶段 :
- 按模块/组件逐个实现
- 对每个组件先写测试
- 使用精确命令限定范围
- 评审阶段 :
- 实时修复并标记错误
- 更新设计文档
- 沉淀经验到模板
- 迭代阶段 :
- 基于历史对话持续优化
- 根据反馈调整规则
- 完善文档体系
这种系统化方法能将AI从"偶尔有用的工具"转变为"可靠的开发伙伴"。
核心是理解AI与人类的分工
使用AI编程工具的真相是:AI不是用来减少你的思考,而是放大你思考的效果。你仍然需要清晰的设计、明确的需求和持续的评审,但你可以减少实际编码的时间。
当我们从这个角度看AI编程工具时,许多使用策略就变得合理了。它不再是"让AI为我编程",而是"让AI按我的方式编程"。
你如何看待你与AI的关系,最终决定了你能从AI得到什么。
牧码有话说 :在实际开发中,我发现将AI视为增强工具而非替代品时,工作流程会更加高效。这也体现在我设计AI产品的理念中:最好的AI不是接管一切,而是精确理解用户意图并放大其能力。这种人机协作的艺术,才是真正的技术进步。
精选前沿AI智能体与开源工具,每周更新实用工具评测,深度剖析AI应用场景,分享高效开发技巧与实战经验。
👍
【扣子Coze实操】Coze基本操作讲解,图文详解(保姆级)
【AI副业实战】巧用AI打造完美毕业设计,图文详解(保姆级)
【RPA智能实战】 公众号内容创作全自动化:影刀+Coze+飞书多维表格实现内容二创与发布
【扣子Coze实战】3分钟学会Coze操作飞书多维表格,零代码也能自动化处理数据