Cursor 体验


Cursor 初体验

Cursor 近来热度飙升,初试感受颇多。上周三因事请假一天去PICC处理保险事宜,下午在家接触到了Cursor。初次使用时,我深感震惊。首先,Cursor支持实时投喂文档/框架代码,并且提供了丰富上下文(GPT4支持),这极大地提升了用户体验。

此外,Cursor还具备一项功能:通过prompt进行项目结构调整,一次就能修改多个文件内容。这种便捷性使得工作流程更加高效。

我的使用场景包括:

1. 使用Cursor重写之前的图片下载插件,将V2的代码迁移至V3,并且迁入Plasmo框架下。

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

3. 实现canvas绘制内容转为SVG。

为了确保生成的内容符合Plasmo规范,我提前制定了Context。这样可以将Plasmo文档和Chrome extension V3的内容整合到上下文中。在生成过程中,我发现如果初期提供的内容不符合规范,Prompt提醒约束即可。整个过程体验了一次Cursor的便利性。

优势

1. 快速开发:能够快速实现代码,并构建产品形态。对于大多数程序开发者来说,这应该足够实用。目前由于还在FastRequest范围内,响应速度还不错。

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工具:FutureisTab Tab Tab ~ 主动成为hybrid engineer

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