都在吐槽 cursor,用 cursor 来撸个浏览器扩展来验证下

2 天前
 pizone

本人产品狗一枚,趁着都在讨论 cursor ,也做个浏览器扩展来玩玩,顺便分享下 cursor 使用心得。本人不能说对技术完全没了解,毕竟经常跟开发大佬打交道略有耳闻一些术语,本次使用了 cursor 来生成了一 rss 订阅浏览器扩展 rssflow ,代码纯 cursor 生成、除了一些配置信息手动修改外,经过两次重构和性能优化,历时一个月 rssflow最终完成了 Edge 和 Chrome 扩展的上架。https://rssflow.oinchain.com/

开发初衷

项目启动其实挺随意。偶然在抖音上刷到用 Cursor 几分钟撸了个浏览器扩展的视频,而我本身是 RSS 订阅的拥趸,但不太喜欢安装对于的订阅 App 或桌面软件,我需要一个随手就用,用完就走的订阅工具。再加上 Google Gemini 有免费的 API ,国内的 Deepseek 和 Siliconflow 性价比也很高,所以就打算手搓一个具备 RSS 订阅和 AI 摘要功能的扩展的想法了:

一款 RSS 浏览器扩展,不需要账号登录、即装即用,把未读文章的消除以一种解压的方式来呈现, 具备 RSS 的阅读器的基本功能,同时具备 AI 摘要功能。

开发过程-万事开头难

把这个粗略的想法,问 chatgpt ,让他分析这个目标在浏览器扩展上技术可行性,让它结合最佳实践给出具体的技术方案,拷贝到 txt 文本上,然后所有的项目都基于这个 txt 文本开始。 让 cursor 先理解这个技术方案,让 cursor 把最简要的文件结构搭建起来,可以使用 composer 模式让他自动创建文件。 要求 cursor 以最简单能跑通流程方式来逐步迭代实现,比如:首先要求其验证 rss-parser.js 解析 rss 在扩展上的技术方案是否可行,要求跑通 RSS 订阅和显示订阅内容为目标,开始不要考虑各种边边角角的问题,只要这个最简单的流程能跑起来即可,万事开头难,只要项目能跑起来,慢慢就把积木搭起来了。整个 cursor 开发的过程接近 1 个月,最主要是 css 代码和某个文件超过 2000 行,导致代码经常抽风,再加上摸索使用 cursor 浪费大量时间。

Cursor 使用心得

折腾完这个项目,简单分享一些个人经验:

  1. 万事开头难,先从简单的跑通流程开始。
    • 不要一开始就要求实现一个很完整的大功能。
    • Cursor 可能会抽风,出现大量错误,难以定位和修复,这对于不懂代码的人来说是灾难。
  2. 只有初步想法,怎么开始。
    • 可以问 ChatGPT 、Claude 或 Gemini ,汇总后得出大致的落地技术方案。
    • AI 阅读的代码量远超人类,要求它以最佳实践方案考虑设计,它给的会比你预想的多很多。
    • 这种场景下如果有款 AI 产品可以实现模型自动互提问题、互相回答、讨论确定最终技术方案,那就更好了。
  3. 根据项目特点配置 Cursor 的 Rules for AI 。
    • 直接描述你的项目和场景需求,让 AI 生成对应的提示词。
    • AI 比你更懂如何写 Prompt ,没必要花太多时间研究 Prompt 框架。
    • 也可以直接到 cursor.directory 上找适合项目的技术栈的提示词。
  4. 解决 Cursor 上下文不足和不时抽风问题:
    • 无法根治: 只能及早发现,及时治疗(回滚代码)。
    • 单文件代码量: Cursor 在单文件 1000 多行代码时处理起来还算游刃有余,超过 2000 行或接近时,抽风概率会很大,最好尽早拆分功能。
    • 拆分过细,解决抽风问题? 上下文长度是硬伤,分拆太细,它后面可能会忘记,导致重复实现。
    • 善用 Git: 如果一个小问题,改了一堆代码,同时错误没有减少反而增加,大概率在抽风。
    • 分支开发: 在做复杂功能前,最好创建一个分支,通过 Git 更细粒度地控制版本,因为这个复杂功能有很大概率会失败,通过 git 来更细的控制版本,让代码变得可控,比如我做多语言适配模型回复语言和播客功能就改了很长时间,把原有代码都改乱了,就差问候 cursor 全家了,这个需要点耐心。
  5. 防止 Cursor 修改正常代码逻辑:
    • 提示词限制: 在提示词中加入限定,如:每次按指令执行代码建议,不能对与本次指令无关的代码逻辑和功能进行修改
    • Composer 对话: 对话太长,建议新开窗口。 一直在一个对话窗口的好处是有足够的上下文,不好的地方恰恰是知道太多了,历史对话中包含多个功能的改动,cursor 有时会不知所措。
    • 功能迭代: 开始新功能或迭代时,建议新开窗口,先 @codebase,让 Cursor 熟悉代码,要求重点关注接下来要迭代的功能和代码逻辑,然后再开始提你的迭代需求。
  6. 避免 Cursor 过度设计:
    • AI 的优势是看过太多代码,知道各种最佳实践,但往往引入太多复杂设计,不利于实现和功能迭代。
    • 遇到这种情况,回到“万事开头难”的观点,先要求跑通流程,它出的方案先复制下来,等流程跑通了,再让他回过头评估可以做哪些优化,哪些是最要紧的。
  7. 界面设计:
    • 这的确是一个难题,我也在摸索,起初我是画了个简单的原型,上传图片让他来实现。后面我是直接上网找了一些设计稿,让他照着来,其实都不是太理想。
    • 后面实在没办法,直接一顿猛夸 cursor ,把所有在设计师方面的赞美词都用上,让他基于当前代码功能大胆放开设计,陆续设计了十几个版本的界面,以量取胜,选了一个可以接收的。

结论

实践完后整体体会是,把 cursor 吹上天也是可以的,虽然 Cursor 还没有到替代程序员的阶段,但是这波趋势会挤压程序员的生存空间,其实不单单是程序员,生产力提高太快的情况下,整个互联网链条上的岗位都会被挤压( cursor 也可以用来写需求、做运营方案,各种你意想不到都可以在 cursor 上来实现)。Cursor 只是工具,具体如何使用取决于你,还是要尽快拥抱变化。它目前非常适合实现简单的逻辑和页面,所见即所得的开发方式的确是个最佳的选择。如果你略懂开发流程和功能迭代思路,即使是零代码基础的人也可以做出一些复杂功能的应用出来,关键看有没有产品意识。其实是利好有产品意识的开发的,或者有些开发常识的零代码基础的个人。

粗略观点,抛砖引玉了。现在 cursor 还可以免费试用,以个人经验来看,想要完全依靠 cursor 来生成中小规模的应用,每个月 250 次是远远不够用的,起码得消耗个六七个账号的额度。大家趁严格限制之前多玩一玩。

2133 次点击
所在节点    程序员
26 条回复
Zzzz77
2 天前
> 功能改完,验证没问题,就 git 保存一下

事实上你别说是不懂代码,哪怕是水平较低,你都验证不了有没有问题。

这是典型非开发的思维,通过鼠标点一点看看是否符合预期,以此判断有没有 bug ,这完全是扯淡,很多边界条件不是普通人随便试试能试出来的。

当然这种现状在 AI 之前也有,见过很多刚入门的程序员写代码靠猜的,代码逻辑去网上东抄一点西抄一点,自己不理解逻辑,运行起来简单试几下符合预期就行。真遇到 bug 了再去针对 bug 打补丁,很多屎山就是这么来的....
pizone
2 天前
@Zzzz77 这东西限于篇幅也说不了太细。你告诉 cursor 我需要验证功能是否符合需求,他就会给出一些解决方案了,按照他的建议执行就行了,他会在关键节点加上日志,看看日志数据,再结合界面上点击点击,就差不多了验证完了。其实如果你还想更细验证也可以的,你让他输出某个功能完整的调用链路,要求说明清楚每个方法的作用和调用顺序,包括数据流程。 他立马就能输出出来了。
suke119
2 天前
@pizone 我从 23 年 5 月 用到至今,他们产品迭代了 n 个版本了,我可是一直用的,如图
从 23 年我就开始推荐给身边很多人了;对于不会编程的人 可不会了解这么多编程上的细节
pizone
2 天前
@suke119 嗯,我也挺早就听说了,不过一直没用。只是看到老是在吹 cursor ,其实也挺烦的,但是又看不到这些人使用纯 cursor 搞个完整的有前后端的项目出来给大家看看,给大家打个样,老是说做了很多小工具,小脚本之类的这些简单,没啥参考价值,其实也证明不了 cursor 有多神。同时让一些没有代码基础,但是又想用实践下搞点小工具的大概有个概念,使用 cursor ,可以完成复杂度能到到什么程度的项目,如果你的复杂度在我这个之下,完全是可以满足的,可以大胆的付出行动,赶紧实践做出来,大概是这么个意思。
nyxsonsleep
2 天前
最佳实践 ❌
最常见实践 ✔️
kasusa
2 天前
牛蛙牛蛙

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1102994

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX