最近 cursor 在圈内很出名,因为其在 AI 辅助编程上面,确实很多方面都要胜过 GitHub copilot,笔者也用了一段时间,自动开始使用之后,就停不下来了,感叹其功能强大。
但是,有些人在网上说,自己一行代码不会,就可以用 Cursor 完成多么复杂的功能。这么说就吹嘘的有点严重了。 Cursor 对开发效率提升不少,但是,绝对没有到让编程零基础的朋友可以开发出一款完整的 App 的成都,尤其是按照给出的设计图与固定的需求进行开发的场景中,没有编程基础更加困难。
首先,cursor 本身是基于开源的 vs code 基础上开发的,所以更加适合用来做本身适合在 vs code 上面开发的工作,比如网页前端代码的开发等。是否可以用它来进行其他的项目开发,比如 iOS 开发,安卓开发,甚至后端 spring boot 等开发呢?答案是可以的,但是会麻烦一些。
用Cursor 来进行网页前端开发时,直接使用 cursor 开发就可以了,但是用来开发 iOS 的话,需要同时用 Cursor 和 Xcode 打开同一个项目。项目真正的运行和调试依然需要使用 Xcode 进行,Cursor 并不能进行调试 iOS 项目代码,此时它充当一个可以读取整个项目的上下文,可以进行代码编写的角色,用 Cursor 生成完代码之后,需要再切换到 Xcode 上面进行调试。虽然麻烦一些,但是它确实可以跟编写网页前端项目等达到同样的代码生成功能。
# 提高cursor编程效率的一些方法
在使用Cursor 过程中,有一些切实可行的方法可以提升其编程效率,不同的使用方法,给出的结果也是不同的。
1. 让 Cursor 实现尽可能明确的功能
对需要实现的功能,尽可能进行拆分,将大的功能模块拆分成几个可以具体实现的功能,并且没有歧义。 比如想完成一个复杂界面,并且有点击按钮等各种交互的任务。可以先拆分为完成界面,然后再完成按钮点击的功能。
界面开发也可以再进一步进行拆分,先将其大体框架实现,然后再进行细节的修改和补充。
明确的按照步骤进行开发,要比直接让 Cursor 一步到位,要更加的高效。因为碰到一些有歧义的问题时,Cursor 实现的功能可能会跟你的预期有差距,这时候,想在这个基础上修改或者调整,就非常难达到想要的效果,因为 Cursor 并不知道你希望修改的重点到底在哪里。
2. Git 是 Cursor 编程的最佳伙伴
对于专业的开发来说,版本控制工具如 Git,比自己开发起到更加重要和明显的作用。
每次代码调试到自己理想的程度,一定要立即、马上去提交自己完成的这一步。因为在下一次使用 Cursor 生成的代码,很可能会覆盖掉之前实现的一些功能。如果后面实现的效果不理想,但是上一步又没有保存的话,那就非常麻烦了。尤其是在直接使用 Cursor 的 Compose 一次性修改多个文件的时候。
一定要及时提交代码,这样才能最好的保存自己的成果。后入如果 Cursor 生成的代码不理想的话,可以直接 discard 掉。 这样又可以愉快地进行开发了。
3. 慎用 @codebase
Cursor 中可以使用 @codebase 进行全局的查找和开发,但是不要每次都这么尝试。
如果自己对代码需要完成的任务比较清楚,并且知道会涉及到哪几个文件。那直接在对话框中添加涉及的这几个文件,然后让 Cursor 进行开发,会非常准确地完成任务。
虽然 Cursor 可以通过 @codebase 进行全局查找和开发,但是并不代表它会真的准确地找到应该去修改哪些文件,在很多情况下这样使用并不会很理想。所以,限制 Cursor 访问的文件,也是一个提高代码质量的方法。
4. Rules for AI 功能使用
在 Cursor 的设置中,有个 Rules for AI 的功能,可以添加规则,并且这个规则会用到所有的对话以及 Command-K 的会话中。
可以将你使用过程中经常碰到不理想的地方,在这里直接写上。 并且,为了更好地理解代码,可以直接在 Rules for AI 中添加让其将每次生成的代码的注释。这样,我们可以更好地理解 Cursor 生成的代码,也方便我们自己进行手动的修改和调整。
Cursor 很强,对编程的帮助很大。但是,也并不是万能的。可以把 Cursor 理解为可以一辆自动驾驶的汽车,大部分时候都可以不用太多的管理,但是自己一定要会开车,还要注意到它是否要失控。 所以,笔者的观点是,要想更好的运用现有的工具进行高效开发,最起码需要理解自己编程的语言的一些基本使用方法以及注意事项,可以不用写,但是一定要能看懂。
Git确实是Cursor编程的好帮手,毕竟会更改写好的代码。
是的,接受cursor代码的时候,一定要保持之前完成的成果。不然可能会前功尽弃啊。