Cursor 101

Cursor 教程 - 合理使用 Composer,开发效率翻倍

Cursor 的 Composer 功能,可以让你更方便的进行多文件的编辑。但是如果你不合理的去使用它,可能会带来一些问题。本文将介绍如何合理使用 Composer,让你的开发效率翻倍。

Composer 提供了什么样的能力?

相比提示栏(Cmd K)和聊天(Cmd L)功能,Composer 能够更好的支持多文件的编辑。如果你需要添加新功能,或者对项目已有功能模块进行较大的修改,Composer 是你更应该选择的方式。

使用 Cmd+I 组合键打开 Composer。

alt text

通过官方最新的文档描述也可以看出,Composer 是作为一个助理的存在,主要帮助你在项目中完成新功能的开发。

alt text

但是我在使用后,发现它并没有想象中的那么好用。通常会有以下的问题:

  1. 当需要需改的文件过多时,Composer 会更容易犯错
  2. 对于功能代码的实现不合理,不能达到我的预期
  3. 在进行代码编辑时,常常会修改到不应该修改的文件

经过我的反复尝试,发现我总是会高估 Composer 的能力,让它去完成一些超出它能力的事情,所以导致最终的效果并不满意。

在转变思路之后,我发现 Composer 越来越好用,合理的使用才能发挥它更大的能力。

如何合理使用 Composer

通过我的多次实践,主要总结出了下面两个方式:

  • 合理的对任务进行拆分
  • Composer 快照的使用

通过这两个方式的结合,让 Composer 的体验越来越好,出问题的情况也越来越低了。

任务合理拆分

流程步骤:

  • 在使用 Composer 前,先思考清楚你要实现的新功能模块。
  • 如果新功能模块涉及的内容比较多,你就不要奢望一次就让 Composer 完成整个模块,而是要分步完成。
  • 我目前的最佳实践,把任务拆解到一次修改2到4个文件是比较合适的。
  • 然后把拆解的任务按顺序交给 Composer 去完成。

因为现在模型的能力还不是那么的强大,所以不要奢望让 Composer 一次性完成太大的任务。

受制于模型的注意力机制以及上下文的大小,让 Composer 一次性的修改10个文件,还保证不出错,这个难度是非常高的。

比如,我的Top Tech Stories项目,需要实现多语言的功能。

alt text

我会把这个功能拆分成3个子任务:

  • 安装 next-intl, 并生成初始化的配置文件
  • 根据项目的页面信息,生成中英文的国际化文案到配置文件中
  • 在项目对应的页面中应用配置好的文案

经过这样的任务拆分后,整体的流程执行下来就非常流畅,出错的情况大大减少。

Composer 快照的使用

Composer 提供了快照的功能,你在 Composer 中的每一次对话,都会生成一个代码修改前的快照。

通过 Composer 快照,你不用担心 Composer 会对你代码进行错误的修改。

如果你在测试验证后发现代码有问题,点击 Restore 按钮,就可以回退到此次对话前的代码状态。

alt text

你在 Composer 整个的会话周期内,每次对话前都会生成一个快照,你可以回退到任意一个对话前的快照状态。

所以一个比较好的实践是一个新功能的开发对应一个 Composer 会话周期,在会话周期内,按照任务拆解的顺序,逐步把拆分后的子任务交给 Composer 去完成。

总结

最后再整合一下我认为的 Composer 最佳实践流程:

  1. 先思考清楚要实现的功能模块,并进行任务拆分(拆分到每个子任务一次修改2到4个文件)。
  2. 开启新的 Composer 会话,并把拆分后的子任务按顺序交给 Composer 去完成。
  3. Composer 每完成一个子任务后,进行功能以及代码验证。
  4. 如果验证没有问题,继续把下一个子任务交给 Composer 去完成。
  5. 如果验证有问题,通过回退功能回退到上一个快照的状态,并根据问题提示,调整代码。
  6. 重复 3-5 步骤,直到所有子任务完成。

随着模型能力的增长,Composer 的能力也会越来越强,需要你进一步拆分任务的情况也会变少,从 Cursor 现在主要发展 Agent 的能力也能看出。