“聊天式编程”让代码听你的话:Cursor打造极致心流体验

程序员咋不秃头 2025-04-06 00:52:37

最近半年深度体验了Cursor,享受到了很多乐趣,这篇文章将分享对于Cursor的一些实践与思考。

“聊天式”编程已经到来

在2023年1月,四位麻省理工学院(MIT)本科生创立的AI编程工具Cursor横空出世,以“重新定义软件开发流程”的革新理念迅速崛起 。团队提出了“优秀的工程技术比算力更重要”的理念,不管是猜你所想的“tab、tab、tab”,还是一键添加多种类型的“上下文” 或是无所不能的Agent模式,真正意义上诠释了什么是你的专属私人编程助理,Cursor的出现,可以说标志着“聊天式”编程的到来。

和传统的编程模式相比,“聊天式”编程有三大核心突破:

通过“自然语言”写代码

从一开始的机器语言到汇编再到现在的高级语言,可以说计算机语言就演变本质上是从硬件到认知的不断抽象,Cursor的出现无疑是打开了高级语言迈向自然语言的大门。想想看:高级语言帮你屏蔽掉了汇编语言的复杂度,依此类推自然语言的终态也将会帮你屏蔽掉高级语言,这是一个振奋人心的事,这意味只要你懂得“说话”,你就懂得编程!人人都是编程大师!(ps: 在脑洞一下,未来会不会把自然语言也屏蔽掉,用“思维”沟通,这不是就是三体世界吗)

当然从目前的技术看来,还是处于高级语言到自然语言的过渡阶段,但这也相当的炸裂,你Code的过程不再是你一个人在战斗,而是好像有一位耐心的智者站时时刻刻站在你后面,和你一起讨论、解决问题,他不仅可以快速验证你的想法,更有趣的是很多时候可以给你更多的思路,让你有更阔的视野,正如Cursor创始人所言:“我们不是在教AI写代码,而是让它成为人类创造力的延伸。” 在这种新范式下,我们的注意力将会从"如何写代码"转移到"解决什么问题",AI会逼迫你“想清楚、说清楚”。清晰的表达将会成为一种稀缺的生产力。

追求:以判断力的速度迭代

以下是我用Cursor搭建一个本地数独小游戏,整个过程用了16s,16s!而我的prompt仅仅是:“给我写一个数独游戏,使用js语言”,Cursor的Agent模式自动帮我写好代码,本地运行,让“想法”秒级别的体验的感觉妙不可言,Cursor真正做到了及时反馈。

模糊了边界,你可以成为你想成为的人!

Cursor逐渐模糊掉产品经理、设计师和程序员之间的界限,可以预见的将来也会改变这些岗位的设立逻辑和开发团队的组织方式。Cursor客观上磨平了各个角色之间的技术壁垒,让“想法”不再受限于某类资源,Cursor把编程的门槛拉到了一个足够低的程度。

更有趣的事,它正在让更多人有机会参与到软件创造中去,体会编程的乐趣。网上报道一个8岁的孩子用了45分钟,完成了一个聊天小程序,并公开了整个过程( https://x.com/rickyrobinett/status/1825581674870055189 )另外Cursor让我最惊艳的地方就是无感知迁移,整个过程用了不到10分钟,体验感拉满,产品价值杠杠的。

Cursor引领新的编程范式

本小节讲介绍:如何巧妙的使用Cursor完成一些复杂任务。

Cursor四大件

首先我们需要了解Cursor为我们在不同的场景提供了不同能力支持,从简单场景到复杂场景依次是:Tab、Inline chat、Ask以及强大的Agent。(ps:Ask对应老版本的Chat;Agent对应老版本的Composer,更详细的内容可见: https://www.cursor.com/ )

下面我们重点要分析一下,Cursor到底改变了传统编程的什么环节,我们也好重点发力。我们在面对一个复杂任务时都可以拆为以下四步:确认目标、确认方案、开发以及验证。Cursor的到来最大的改变就是:在需求阶段的表达方式,即如何与AI沟通?

从 “想清楚” 到 “说清楚”

AI很强,他像是一个无所不知的大师,但是他不知道你脑子里到底想要什么。很多时候,我们会遇到如下场景,在从前,我反手就是一句:这个AI太蠢了,这都搞不定,而现在,我开始“反思”我自己:是不是我没给人家说清楚。

在《真需求》一书有提到:83%的用户投诉并非源于产品缺陷,而是需求理解偏差。当我们表述的内容已经偏离了需求本质时,耶稣来了也搞不定,所以我们需要把事情先说清楚,这里有一些常用的套路,核心的原则就是:足够的上下文+结构化表达,对于大多数场景,我们都可以使用:你可以使用“人设+任务+上下文+案例+方案”的组合,我们应该多多练习这种“与AI”的沟通方式,尝试把问题描述清楚,让AI理解的轻松些;再者就是结构化表达,强烈推荐使用Markdown格式,这种格式天然的就会对内容“分块”,让AI更容易理解,把这两种结合下就是:把上下文整理成Markdown的内容给AI,这会让你的Prompt的质量上一个台阶。

让AI逼迫你思考:反向费曼学习法

在使用AI时候,他往往倾向于直接满足你的表面需求,但可能会忽略一些深层需求内涵。所以好的模式不是你直接去提问,而是让AI引导你思考!

我记得小学的时候,学习奥数,类似“鸡兔同笼”“牛吃草”的问题,我爸每次给我辅导完题目,都会问我:你懂了吗?明天去给你隔壁叔叔家的孩子也讲一遍,看能讲清楚不?哪个时候我就意识到了,很多时候你以为你懂的东西,其实都不懂,而且有很多疑问。

我们把这种模式迁移一下,那对于AI来说,当你提出了一个问题,想想:他真的懂了吗?让AI反述一遍,你听听如何?但是光这个就够了吗,不够,你还需要让AI具有质疑精神,让他对你的问题提出质疑,而不是全盘接受!反向逼迫你去思考什么是“真需求“,让AI变成你思维的“延展“。我把这种模式称之为:反向费曼学习法。

分而治之+小步验证

当我们定义好了“问题”,下一步就是方案和行动,《领域驱动设计》中讲到了一个解决问题万能法宝:分而治之。再难的问题,也可以拆分为无数个简单的小问题,把每个小问题解决好了,大的问题也不是问题了。

我们依旧可以延用这个模式,当一个问题来临时,先使用上述的方式进行需求澄清+疑点确认,然后我们可以先使用Cursor的Ask模式先让AI给出不同的解决方案以及优劣,“阿步思考法”告诉我们方案都是“各种资源”的权衡,我们不可能有阿步一样无限的资源,所以权衡的工作一定是人来完成,而不是AI,AI的优势是他懂得多懂的广,但是他很难了解到一个任务具体的背景,这些隐形知识也很难表述出来,而人去权衡恰恰补充了这部分知识。

接下来就是方案的拆分。没错,还是让AI去拆分,拆分成AI可以执行的步骤,这里有一个小技巧就是要把拆分的结果以Markdown的格式记录到Notepad(Cursor提供的轻量化记录工具)。记录的目的一个是给自己看,帮自己理清思路(对于生成级别代码,你必须知道方案的思路)也方便后续在此基础上做调整,另一个是把Notepad作为上下文给到Agent模式去执行,Notepad在两种模式之间起到了很好的桥梁作用。(ps:当然还可以用其他)

在Agent模式执行的时候,我们需要按照直接的拆分任务并且逐步执行、逐步验证,切记不要一次生成几千行代码,再验证,不然可能会越改越乱。

如虎添翼:MCP的到来

MCP是什么?

简单的说,MCP(Model Context Protocol)就是AI与外部世界的“万能连接器”,让AI有了眼睛和手臂,网上有一张很经典的图,如下图:

不过有朋友肯定会问:访问外部资源貌似也不是什么新鲜事吧,应该早就有了吧?是的,早就有了,但是MCP真正的价值在于:统一了标准,不用再重复造轮子。在过去每个软件都需要为AI单独开发接口,效率低且成本高昂。而MCP的出现,解决了这一痛点。

在MCP的加持上,让AI不仅有了更大的上下文,也让闭环操作性上了一个大的台阶。

MCP 能做什么呢?

扭转数据流,把人解放了出来

假如现在有一个这样的场景:统计数据库中,符合某些条件的数据。如果没有MCP之前你会怎么做呢?我想你会从数据库导出数据,再手动的粘贴到prompt中;看起来貌似也不复杂,那如果有一千万数据呢,如果数据分布在不同的节点呢?事情就变得复杂了。

而有了MCP之后,交互模式发生了本质的变化,人不用再做“数据粘合剂”,各个数据孤单被MCP连接起来,AI有了自动探索“上下文”的能力。

打不过就加入:工具类产品提供MCP能力将成为趋势

AI生态发展发展令人震惊,传统的工具类服务如果只停留在页面+API的形式已经远远不够,应该把自身融入到AI生态中,提供MCP能力将成为趋势。

Cursor十大使用小技巧

技巧一:终端对话(超级好用)

你再也不用因为忘记了linux命令而苦恼,直接command+k ,使用自然语言去描述命令行(ps:你可以在本地开一个Cursor的项目专门操作本地终端)

技巧二:历史代码生成注释

使用command+k,为历史代码快速生成注释。(ps:相比Ask模式速度极快)

技巧三:一键生成 commit message信息

再也不用去想:我的代码改了什么?现在一键帮你生成提交信息。

技巧四:接手项目,快速可视化了解项目架构

使用Ask模式给你整理出项目的架构图,输出Mermaid语法的文本。

粘贴到看图文本工具: https://mermaid.live/ ,快速了解项目。

技巧五:巧用Notepad记录关键思路

使用notepad记录重要上下文,使用@即可

技巧六:@Git找出代码漏洞

遇到代码MR的时候可以先对比一下与主干代码的差异,检查是否有问题,或者当你MR后代码发生了问题,都可以使用@Git

技巧七:使用checkpoint 一键回滚

技巧八:设置你的专属提示词

在Cursor Rules里设置你的专属提示词,网上有很多,可以自行查找。

技巧九:拖拽式 添加上小文

再也不用去一个一个寻找目录去添加上下文了,在目录中直接按住目标文件,拖进对话框即可。

技巧十:@web

使用联网功能,快速获取最新的信息

Cursor团队的一些观点

内容来自: https://lexfridman.com/cursor-team-transcript ,其中比较有趣的几点:

未来工程师是人机混合体,人类创造力 + AI能力 > 最佳纯AI系统。创造力、系统设计能力和做出权衡决策的能力将变得更加重要。更高层次的抽象:

程序员可能会更多地在更高层次的抽象上工作,如伪代码。AI可以将这些高层次指令转换为实际的、可执行的代码。

灵活的抽象层级:

未来的编程环境可能允许在不同抽象层级间自由切换。

例如,可以在伪代码级别编辑,然后下钻到具体的实现细节。

好的编程工具应该通过行为预测,而不仅仅是自然语言,例如强大的tab。

Cursor与心流

“心流”一词是由匈牙利心理学家米哈里·契克森米哈伊在1975年提出的概念,指一种幸福的最优体验。他在《心流》一书中提到人获得“心流”的三个核心条件,Cursor的到来和三点完美的契合在一起,code将会成为一件可以带给你幸福的事!

明确的目标

如上文所说,使用好AI的前提是想清楚、说清楚,这就天然的在思考任务的过程是明确自己的目标。

即时反馈

无论是Cursor的AI代码补全和自然语言对话功能(如⌘+K唤醒)能提供毫秒级响应,或者是秒级别的Agent能力,都可以持续给予你正反馈,让你的想法立马实现。

挑战与能力匹配

在完成任务中,AI可以帮助你更好的理解需求并自动处理底层复杂性,让你聚焦于创造性调整,既避免因任务太简单而厌倦,又防止因难度过高而焦虑,给进入心流状态,变的更加轻松。

写在最后

新的时代,对于软件价值理解,可能有新的定义:

软件价值 = 创新 ×(需求清晰度 × AI理解度)× 工程实现效率。

0 阅读:0