最近关于 Cursor 的传说甚嚣尘上,我也体验了一把,用 Cursor 创建一个网站,使用我完全不熟悉的 TypeScript 技术栈来开发。效果非常惊人,可以说 Cursor 把编程的门槛拉到了无限接近于零,因为前端方面我的知识储备仅限于基础 HTML 和 npm install,现在借助 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 键选择建议。
- AI 聊天(Chat): 可以通过聊天界面与 AI 交互,提出问题、请求代码生成或解释等。
- 代码解释(Chat): 可以选中一段代码,然后让 AI 解释其功能和逻辑。
- 代码生成(Composer) 可以使用自然语言描述需求,让 AI 自动生成代码。例如,输入“写一个 Python 函数来计算两个数的和”,AI 就会生成相应的代码。
- 代码重构(Composer): Cursor 会自动检测代码中的潜在问题,并提供重构建议。
- 图生代码(Composer): 直接上传图片,完成前端代码。
- 自动查错(Bug Finder): 付费功能,可以扫描代码中潜在的 bug。
更高效使用 Cursor 的 Tips
以下是一些更高效使用 Cursor 的技巧:
- 框架先行: 先搭框架,否则后期内容越来越多,针对框架的调整会越来越难。先维护好项目的框架,和规范化的范例程序。后期会避开很多坑。
- 直接传图: 如果有设计稿图片,则直接上传图片生成代码,一图胜千言。
- 使用成熟的技术: 可以用自己不熟悉的技术栈,但是不要用 AI 不熟悉的技术栈。选择一些相对成熟的技术栈和老的版本,生成的代码会更可靠。
Cursor 使用的弊端
Cursor 使用的弊端之一是你会更少深度关注你的代码,比如我创建的复利计算器,我可以看到他构建了精美的页面和图表,但是我懒得深入去分析他的计算过程是否可靠。一个原因是他生成的内容可靠度很高基本可以不用复核,另一个原因是这个代码不是我写的,程序员都知道,读别人的大段代码往往不如自己写一遍。如果是可靠性要求更高,专业性更强的代码,最好人工复核一遍。
Cursor 时代,程序员的出路
随着像 Cursor 这样基于 AI 的代码编辑器的普及,程序员的门槛无限降低。以下是一些关于“Cursor 时代,程序员出路”的思考:
产品能力和业务能力更加重要
在 Cursor 时代,编程的门槛无限降低。如何发现需求并转化成产品的能力变得稀缺。结合 Cursor ,熟悉业务场景,具备解决专业领域的问题的能力将被放大。
从“代码编写者”到“系统架构师”
Cursor 可以帮助完成大量的重复性编码工作,程序员可以将更多精力放在更高层次的任务上,设计复杂系统的整体架构,定义模块之间的交互和数据流。 设计高效的算法来解决复杂的问题。因为AI 目前还是有一定局限性,缺乏整体思考和复杂问题的处理能力。
技能的提升:拥抱 AI,学习提示工程(Prompt Engineering)
未来的程序员需要具备更强的 AI 协作能力,这意味着要学习如何有效地与 AI 交互,并利用其强大的能力来提高工作效率。
提示工程 变得尤为重要。程序员需要学习如何使用清晰、简洁的自然语言描述需求,引导 AI 生成符合要求的代码。这需要对编程语言、算法和软件工程有深入的理解,才能有效地指导 AI 工作。
除了提示工程,程序员还需要不断学习新的技术和工具,保持对行业发展的敏锐度,才能在快速变化的环境中保持竞争力。
持续学习和适应:终身学习的重要性
技术的发展日新月异,程序员需要保持终身学习的态度,不断学习新的知识和技能,才能适应不断变化的市场需求。要关注最新的技术趋势,例如 AI、云计算、大数据、区块链等,并学习如何将其应用到实际工作中。