主页 >> 程序猿的东西 >> Cursor 使用体验:编程的门槛真的接近零了

Cursor 使用体验:编程的门槛真的接近零了

程序员这个领域真是最神奇的职业,可以不断革命自己,甚至淘汰自己。最近关于 Cursor 的传说甚嚣尘上,我也体验了一把,用 Cursor 创建一个网站,使用我完全不熟悉的 TypeScript 技术栈来开发。效果非常惊人,可以说 Cursor 把编程的门槛拉到了无限接近于零,因为前端方面我的知识储备仅限于基础 HTML 和 npm install,现在借助 Cursor,我完成了一个纯前端的工具站,并且支持多国语言和响应式布局,只用了两天的空闲时间,这在以前是不可想象的。今天就介绍一些我使用 Cursor 的经验和思考。

什么是 Cursor?

Cursor 是一款基于 VS Code 的代码编辑器,因此对于习惯使用 VS Code 的朋友来说可以无缝切换。它集成了强大的 AI 功能,旨在提高开发效率。2024 上半年的 AI 插件基本只是单一文件的上下文,而 Cursor集成了更强大的上下文理解能力,或者说他已经具备了工程化的能力。

Claude-3.5-Sonnet 模型

Cursor 的核心 AI 功能由 Anthropic 的 Claude-3.5-Sonnet 模型驱动。这个大型语言模型(LLM)经过专门的训练,能够理解和生成高质量的代码,并提供以下方面的帮助:

  • 代码补全: 根据上下文预测并补全代码,减少重复输入。
  • 代码生成: 根据自然语言描述生成代码片段或函数。
  • 代码解释: 解释代码的功能和逻辑,帮助理解和学习代码。
  • 代码重构: 提出代码改进建议,帮助优化代码结构和性能。
  • Bug 修复: 帮助发现和修复代码中的错误。

Cursor 针对编程的优化

Cursor 在 VS Code 的基础上进行了多项优化,使其更适合编程:

  • AI 集成: 将 AI 功能无缝集成到编辑器的各个方面,提供流畅的使用体验。
  • 代码上下文感知: AI 能够理解代码的上下文,提供更准确的建议。
  • 多种编程语言支持: 支持主流的编程语言,包括 Python、JavaScript、C++ 等。
  • 可定制性: 提供了丰富的配置选项,可以根据个人喜好进行定制。

Cursor 的主要功能和使用方法

Cursor 提供了丰富的功能,以下是一些主要功能和使用方法:

代码补全: 在编写代码时,Cursor 会根据上下文自动弹出代码补全建议。可以使用 Tab 键或 Enter 键选择建议。区别于 GitHub Copilot,Cursor 的提示更全面。如下图,我在光标的地方删除了 images 路径,他自动识别到下面一行有相同路径并标红,此时只需要按一下 tab 即可。

AI 聊天(Chat): Chat是 GPT最通用的的场景。可以通过聊天界面与 AI 交互,提出问题、请求代码生成或解释等。Cursor 的 Chat 不仅可以进行最基本的聊天,更是可以针对代码上下文对话,比如针对代码做什么修改,他会在代码块的右上方显示一个 Apply, 的按钮,即可一键插入代码中。如果是终端命令,比如你需要提交到 git,也可以直接告诉他,他生成的终端指令右上方也有一个 Run 的 按钮,点击直接在终端执行。

代码生成(Composer) 上面的 Chat 功能面向的是更通用的对话功能,可以用户生成代码也可以进行代码无关的会话。而 Composer 就是针对代码生成的功能,每一次回答都会高亮 Accept all,如果没有问题即可一键生效。也可以一键 Reject 拒绝变更。使用自然语言描述需求,让 AI 自动生成代码。例如,输入“写一个 Python 函数来计算两个数的和”,AI 就会生成相应的代码。Cursor 的中文问答支持的也很好,至少目前我遇到的采纳率非常高。

图生代码(Composer): 属于 Composer 的黑科技,对话框下方有上传图片入口,也可以直接在对话框粘贴,直接上传原型图,即可生成前端代码。对我这样的后端老狗前端老白来说,做全栈开发更容易了。

自动查错(Bug Finder): 付费功能,可以扫描代码中潜在的 bug。

更高效使用 Cursor 的 Tips

以下是一些更高效使用 Cursor 的技巧:

  1. 框架先行: 先搭框架,否则后期内容越来越多,而模型能处理的上下文毕竟有限,所以针对框架的调整会越来越难。先维护好项目的框架,和规范化的范例程序。后期会避开很多坑。
  2. 直接传图: 如果有设计稿图片,则直接上传图片生成代码,一图胜千言。
  3. 使用成熟的技术: 可以用自己不熟悉的技术栈,但是不要用 AI 不熟悉的技术栈。选择一些相对成熟的技术栈和老的版本,生成的代码会更可靠。
  4. 让 AI 清理代码: AI 生成代码似乎大部分时候都是在新增和修改,有些无用代码就一直残留在那里了。可以在完成功能之后,要求 AI 检查代码,删除一些没用的部分。
  5. 善用 git: AI 生成代码的时候有也有一个问题我至今未找到好的解决方案,就是如果 Apply 之后的代码我不想用了,我很难让 AI 再精准撤回,最好的方式就是每次 Apply 如果采纳,则执行一次 git add(可以不用 commit),如果Apply 之后不想采纳也方便撤回。 另外也要善于使用 git 检查代码的变更,看看是不是有预期之外的变更。
  6. Code review: 对于重要业务,必须要做 review,因为我发现 AI 会增加一些无用的代码,也会删除一些有用的代码,我频繁遇到的一个问题是 AI 会把注释的代码删掉,如果是希望保留的,就需要 review 来发现。不光是注释,我也遇到过 AI 把方法整个删掉的情况。因此重要业务必须 review,建议以合并请求的方式 review,会更方便。

Cursor 使用的弊端

Cursor 使用的弊端之一是你会更少深度关注你的代码,比如我创建的复利计算器,我可以看到他构建了精美的页面和图表,但是我懒得深入去分析他的计算过程是否可靠。一个原因是他生成的代码的采纳率普遍高,基本可以不用复核,另一个原因是这个代码不是我写的,程序员都知道,读别人的大段代码往往不如自己写一遍。如果是可靠性要求更高,专业性更强的代码,最好人工复核一遍。

Cursor 时代,程序员的出路

随着像 Cursor 这样基于 AI 的代码编辑器的普及,程序员的门槛无限降低,程序员淘汰自己的日子越来越近了。以下是一些关于“Cursor 时代,程序员出路”的思考:

产品能力和业务能力更加重要

在 Cursor 时代,编程的门槛无限降低。如何发现需求并转化成产品的能力变得稀缺。结合 Cursor ,熟悉业务场景,具备解决专业领域的问题的能力将被放大。

从“代码编写者”到“系统架构师”

Cursor 可以帮助完成大量的重复性编码工作,程序员可以将更多精力放在更高层次的任务上,设计复杂系统的整体架构,定义模块之间的交互和数据流。 设计高效的算法来解决复杂的问题。因为AI 目前还是有一定局限性,缺乏整体思考和复杂问题的处理能力。

技能的提升:拥抱 AI,学习提示工程(Prompt Engineering)

未来的程序员需要具备更强的 AI 协作能力,这意味着要学习如何有效地与 AI 交互,并利用其强大的能力来提高工作效率。
提示工程 变得尤为重要。程序员需要学习如何使用清晰、简洁的自然语言描述需求,引导 AI 生成符合要求的代码。这需要对编程语言、算法和软件工程有深入的理解,才能有效地指导 AI 工作。
除了提示工程,程序员还需要不断学习新的技术和工具,保持对行业发展的敏锐度,才能在快速变化的环境中保持竞争力。

持续学习和适应:终身学习的重要性

技术的发展日新月异,程序员需要保持终身学习的态度,不断学习新的知识和技能,才能适应不断变化的市场需求。要关注最新的技术趋势,例如 AI、云计算、大数据、区块链等,并学习如何将其应用到实际工作中。

滚动至顶部