Cursor 教程 - 合理使用 Composer,开发效率翻倍
Cursor 的 Composer 功能,可以让你更方便的进行多文件的编辑。但是如果你不合理的去使用它,可能会带来一些问题。本文将介绍如何合理使用 Composer,让你的开发效率翻倍。
Composer 提供了什么样的能力?
相比提示栏(Cmd K)和聊天(Cmd L)功能,Composer 能够更好的支持多文件的编辑。如果你需要添加新功能,或者对项目已有功能模块进行较大的修改,Composer 是你更应该选择的方式。
使用 Cmd+I 组合键打开 Composer。
通过官方最新的文档描述也可以看出,Composer 是作为一个助理的存在,主要帮助你在项目中完成新功能的开发。
但是我在使用后,发现它并没有想象中的那么好用。通常会有以下的问题:
- 当需要需改的文件过多时,Composer 会更容易犯错
- 对于功能代码的实现不合理,不能达到我的预期
- 在进行代码编辑时,常常会修改到不应该修改的文件
经过我的反复尝试,发现我总是会高估 Composer 的能力,让它去完成一些超出它能力的事情,所以导致最终的效果并不满意。
在转变思路之后,我发现 Composer 越来越好用,合理的使用才能发挥它更大的能力。
如何合理使用 Composer
通过我的多次实践,主要总结出了下面两个方式:
合理的对任务进行拆分
Composer 快照的使用
通过这两个方式的结合,让 Composer 的体验越来越好,出问题的情况也越来越低了。
任务合理拆分
流程步骤:
- 在使用 Composer 前,先思考清楚你要实现的新功能模块。
- 如果新功能模块涉及的内容比较多,你就不要奢望一次就让 Composer 完成整个模块,而是要分步完成。
- 我目前的最佳实践,
把任务拆解到一次修改2到4个文件
是比较合适的。 - 然后把拆解的任务按顺序交给 Composer 去完成。
因为现在模型的能力还不是那么的强大,所以不要奢望让 Composer 一次性完成太大的任务。
受制于模型的注意力机制以及上下文的大小,让 Composer 一次性的修改10个文件,还保证不出错,这个难度是非常高的。
比如,我的Top Tech Stories项目,需要实现多语言的功能。
我会把这个功能拆分成3个子任务:
- 安装 next-intl, 并生成初始化的配置文件
- 根据项目的页面信息,生成中英文的国际化文案到配置文件中
- 在项目对应的页面中应用配置好的文案
经过这样的任务拆分后,整体的流程执行下来就非常流畅,出错的情况大大减少。
Composer 快照的使用
Composer 提供了快照的功能,你在 Composer 中的每一次对话,都会生成一个代码修改前的快照。
通过 Composer 快照,你不用担心 Composer 会对你代码进行错误的修改。
如果你在测试验证后发现代码有问题,点击 Restore 按钮,就可以回退到此次对话前的代码状态。
你在 Composer 整个的会话周期内,每次对话前都会生成一个快照,你可以回退到任意一个对话前的快照状态。
所以一个比较好的实践是一个新功能的开发对应一个 Composer 会话周期,在会话周期内,按照任务拆解的顺序,逐步把拆分后的子任务交给 Composer 去完成。
总结
最后再整合一下我认为的 Composer 最佳实践流程:
- 先思考清楚要实现的功能模块,并进行任务拆分(拆分到每个子任务一次修改2到4个文件)。
- 开启新的 Composer 会话,并把拆分后的子任务按顺序交给 Composer 去完成。
- Composer 每完成一个子任务后,进行功能以及代码验证。
- 如果验证没有问题,继续把下一个子任务交给 Composer 去完成。
- 如果验证有问题,通过回退功能回退到上一个快照的状态,并根据问题提示,调整代码。
- 重复 3-5 步骤,直到所有子任务完成。
随着模型能力的增长,Composer 的能力也会越来越强,需要你进一步拆分任务的情况也会变少,从 Cursor 现在主要发展 Agent 的能力也能看出。