Cursor 初体验

4,428 阅读3分钟

Cursor 初体验

Cursor 最近热度非常高,初体验,聊聊感受。

上周三请假一天去PICC弄保险,下午在家接触了 Cursor。非常震惊,1、能够支持实时投喂文档/框架代码丰富上下文(GPT4支持);2、能够通过 prompt 对项目结构进行调整(一次修改多个文件内容)

我的使用场景:

1、使用 Cursor 重写之前的图片下载插件,将V2的代码支持到 V3 并且迁入了 Plasmo 框架下。

2、实现 canvas 当前渲染内容转图片(2D,3D)

3、实现 canvas 绘制内容转SVG。

Context 提前指定,可以将 Plasmo的文档内容和 chrome extension V3的内容添加到上下文。

一开始生成的内容可能不符合Plasmo 规范,prompt 提醒约束即可!

功能实现了,也体验了一遍 Cursor .

image.png

image.png

优势

1、快,能够快速实现代码,构建产品形态。对于大部分程序开发者应该是足够用了,目前因为还在 fast request 范围内,响应速度还不错。
2、代码的风格可以严格限制规范。TS 完整类型定义,我在项目中提前规范好了 MESSAGE_TYPE 以及 ResponseType 生成的代码会参考这个类型格式来组织代码。JS 写demo适合,真正写业务代码和项目代码TypeScript更加推荐,强制类型检查是比较稳妥的办法(完备的TS,AnyScript 还不如js)【引用:你以为使用 js 能节约时间,数据格式变更修改不完全,排查bug的时间都会全部还回去!】

3、不一样的代码实现方式,开发者都有自己的风格(代码设计上和实现上的),AI代码生成能够给出新的代码风格。比如: Array.prototype.filter 使用, 排除 undefined、null、0等 falsity value ,个人习惯实现 arr.filter((item)=>!!item) AI实现 arr.filter(Boolean)。我觉得后者更加优雅。

缺点

1、创造性的逻辑,需要细化 prompt 。比如要实现在站点加载之前覆盖掉浏览器的某些API,Cursor 给出的代码可能不能执行。需要引导它实现,你可以给他一个案例,让他按照这种实现思路实现(我将手写实现的代码给到它以后 + prompt,生成了另一个API覆盖的完整代码~)

2、代码实现是错误的,需要阅读后找到bug,手动修改或者提醒模型修改, 需要能会调试代码,快速识别到大模型实现的代码错误在哪里,如何修改。未来开发者变成 hybrid engineer,我们要比大模型对代码和技术更了解(看得懂代码,了解实现的技术原理~)。 另一个视角如卡颂所言“TDD驱动开发可能是时候了~实现代码前先让大模型实现单侧测试case,覆盖所有可能”

复盘和改进

1、提升 prompt 的能力,学会如何提问,高质量的引导大模型。至今没全面发挥大模型的能力辅助开发,这点应该是最大的卡点。内网一篇关于《Prompt-驾驭大模型》的文章说的比较中肯,完全不把大模型当人(提问:实现一个截图工具~ ,幻想:大模型知道你想实现的手机截图还是浏览器截图),上下文补充,角色。CRISPE 规则格式化自己的 Prompt,让大模型听懂我在说什么。

2、全面应用 Cursor 等AI工具。Future is Tab Tab Tab ~ 主动成为 hybrid engineer

3、转变思路:如何将需求拆分成合理的实现方案上,技术方案实现时考虑使用大模型生成某个功能的便捷性(模块结构,框架结构,提前规划好,业务逻辑处理更收敛减少引用(这样大模型单个实现业务功能更快))。