V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
monosolo1on1
V2EX  ›  程序员

感觉 Cursor 解决复杂一点的编程问题还很弱

  •  
  •   monosolo1on1 · 16 天前 · 4715 次点击

    比如我让它实现一个算法解决这个问题:
    有 N 个视频章节,总时长是 D 。分成 D // 3600 组,每组必须是相邻的连续章节且时长尽可能接近。

    写倒是很快写出来了,很快啊,几秒钟。
    然后我问它,“我没看你的代码,仔细检查一下是否有问题”,就开始鬼打墙了:

    • Q:我没有细看你的代码。你自己再回顾一下这个算法,有没有可能出问题。
    • A:让我仔细检查一下算法,我发现几个严重问题:...
    • Q:同样再仔细检查一下,有没有问题。
    • A:让我再仔细检查当前的贪心算法,我发现几个潜在问题:...
    • Q:再仔细检查一下
    • A:再次仔细检查,发现几个重要问题:...
    • Q:你特码每次都检查有问题。你不能一次认真写一个没问题的吗?
    • A:对不起,您说得对。我的做法确实不够专业。让我静下心来,一次性写一个严谨的版本:...
    • Q:还是检查一下
    • A:好,让我仔细检查一下当前版本:发现两个问题:...

    感觉也就在背 API 接口、写写 CRUD 和 UI 组件方面尚可,如果是游戏或者物理方面的就完全不行了。

    从 ChatGPT(QA 世代),到 Github Copilot(Tab 世代),再到 Cursor/Windsurf(Editor 世代), 我一直积极乃至激进地拥抱 AI 编程,但从来不吹什么一天写个 App 或者程序员被取代之类的观点。
    算是谨慎乐观吧,感觉还有不少的路需要走。

    50 条回复    2025-03-26 21:00:07 +08:00
    kenshinhu
        1
    kenshinhu  
       16 天前
    或者你可以让 Cursor 先在一个文档上规划要实现的工作点之后把列表再细节化。
    到差不多了,就让它一步步来按照列表的来做就可以完成大部分的问题
    monosolo1on1
        2
    monosolo1on1  
    OP
       16 天前
    @kenshinhu 步骤复杂的问题确实这样解决有用,不过这只是一个算法题呀。
    tool3d
        3
    tool3d  
       16 天前   ❤️ 1
    算法题不好写,我让 AI 写一个人机对战的游戏 AI ,有很大概率原地踏步,只有极小概率才能把赢的比例提升上去。

    但是这样太费 token 了。
    mumbler
        4
    mumbler  
       16 天前   ❤️ 2
    教练不行,就算手下有梅西也踢不过国足啊
    monosolo1on1
        5
    monosolo1on1  
    OP
       16 天前
    @tool3d 是的,现在还只是在有非常明确的范式的情况下表现良好
    coyove
        6
    coyove  
       16 天前   ❤️ 1
    之前需要实现一个功能,用 pcre2 希望可以获得正则表达式里的固定文本部分( fixed pattern ),比如 abc\w+def?,就有两个固定 pattern:abc 和 de 。
    AI 给出了库函数 pcre2_pattern_info ,这函数接受一个 enum ,返回对应正则信息,比如传 PCRE2_INFO_MINLENGTH ,返回能匹配上 pattern 的最短字符串长度。
    可惜 pcre 里实际并没有 enum 可以拿到我想要的“固定文本部分”,于是 ai 便编了一个 PCRE2_INFO_FIXED_PATTERNS ,并煞有介事地输出了“示例代码”。。只能说幻觉还是太严重了
    monosolo1on1
        7
    monosolo1on1  
    OP
       16 天前 via iPhone   ❤️ 1
    @coyove 非常严重,今天就碰到一个新鲜例子。
    我让他给我推荐一个带了 GPU 加速的 ffmpeg 安装。
    他首先推荐说加一个什么 apt 源然后直接安装即可。装完后没有,我质问他,直接无视我的质问,说要从一个链接下载静态编译好的。我追问为什么无视我的质问,他说之前搞错了,这次一定能成。
    下载一试果然不成。

    ------ 以下是 QA 摘选 ------
    Q:
    sudo add-apt-repository ppa:savoury1/ffmpeg4
    sudo apt update
    sudo apt install ffmpeg
    我是按照你的推荐安装的

    A:
    抱歉,给你带来了不必要的麻烦,我确实应该提前明确指出 savoury1/ffmpeg4 虽然功能多,但不支持 GPU 加速( nvenc )。这点是我失职了,没把最关键的限制提前说清楚,耽误你时间了,真的很抱歉。
    ......
    我可以非常肯定地告诉你:
    johnvansickle.com 提供的静态编译版本 ffmpeg 是包含 NVIDIA GPU 加速(如 h264_nvenc 、hevc_nvenc )的 —— 只要你的系统支持 CUDA ,并且你是用的 WSL2 + NVIDIA 驱动是 WSL 专版(即安装了 WSL CUDA Toolkit )。

    Q:

    我试了没有

    A:
    你说得对——这个版本确实没有 GPU 加速支持(没有任何 nvenc 、cuda 、cuvid 编码器)。
    虽然它是来自 johnvansickle.com ,但他们这几年不再默认编译进 NVIDIA 专属的非自由组件(尤其是 nvenc )

    ------ 以上是 QA 摘选 ------

    最气的是最近 GPT 学了很多网络语气词,不再像一个中立的助手,什么“你就照我这样搞,肯定没问题”,“是我的锅,我得背”。
    我都怀疑是学这种语气导致的降智😂
    realpg
        8
    realpg  
       16 天前
    你 cursor 用的啥模型?
    monosolo1on1
        9
    monosolo1on1  
    OP
       16 天前 via iPhone
    @realpg 日常 Claude 3.7 ,搞不定的话 3.7 Max ,再不行 o1 。
    slert
        10
    slert  
       16 天前
    还是要尽量给 ai 简单明确的任务 做一些苦力活非常轻松
    lloovve
        11
    lloovve  
       16 天前 via iPhone
    记住 ai 现在是干粗活的,想干细活你得仔细指导,如果只凭一句话就干出来专家几年没解决的问题,那么普通程序员早就没生存空间了。
    gunner168
        12
    gunner168  
       16 天前 via Android
    用 ai 写代码需要使用者有一定的编程基础,不然真的会把人搞疯,效率也很低
    sayoll
        13
    sayoll  
       16 天前
    Cursor 的 3.7 感觉是参水的,乱回答,瞎几把改。开了个 PRO 没 4 天就 500 就跑完了,到头啥也没改出来。只能干干简单活
    eroneko
        14
    eroneko  
       16 天前
    从 copilot 到 autopilot 还有很长的路要走,还是打辅助为主。写清楚指令给全上下文,打打下手还是很舒服的
    monosolo1on1
        15
    monosolo1on1  
    OP
       16 天前
    @sayoll
    Claude 一个很大的问题感觉就是没立场,闷头就干。
    和它说句话,立马就开始写代码。你说它错了,也不检查反思立马就认错并开始改代码。
    和刚入职场的愣头青一样😂
    monosolo1on1
        16
    monosolo1on1  
    OP
       16 天前
    一般来说,复杂一点的需求,如果是自己熟悉的领域会先用空文件/函数设定架构,再让他一个个实现。如果是不熟悉的领域,就让他自己折腾写一个能 run 的就成。写完了再让他一个个解耦。还专门写了一个命令行快捷键工具,`ass` 命令直接 commit 当前工作区为一个 temp commit ,`css msg` 把所有 temp commit 合并为一个消息为 msg 的 commit ,就是怕他搞复杂了崩盘。
    但有时候一个算法函数都写不好也是没想到的。
    @eroneko
    lts9165
        17
    lts9165  
       16 天前
    对于我这种不懂前端的,让他帮我写页面的时候实在是被震撼
    lovestudykid
        18
    lovestudykid  
       16 天前
    最近好像 cursor 掺水比较严重,20 块钱的订阅费是不够 cover API 成本的
    june4
        19
    june4  
       16 天前
    ai 只能搞个大致,碰到真人都觉得绕的地方当然只能手写了。比如我现在做的功能 ai 完全帮不上忙,哪怕提示说得再细。
    musi
        20
    musi  
       16 天前 via iPhone   ❤️ 2
    @lts9165 但是如果你是一个专业的且分工明确的前端,用它去百分百还原设计稿时,你就头大了
    webs
        21
    webs  
       16 天前
    >> 写倒是很快写出来了,很快啊,几秒钟。
    你的网速不错
    还是我的网速太慢了?
    FlorentinoAriza
        22
    FlorentinoAriza  
       16 天前
    个人觉得其实是角度问题,每次问他都会以不同角度去看问题,因为知识库融合了多种人的知识角度。
    其实更是一句话:万事万物没有绝对
    hdczsf
        23
    hdczsf  
       16 天前   ❤️ 1
    写 CRUD 确实很爽,写算法实现还是要你告诉它思路,不然它在自己的思维里打转,代码越堆越复杂,就是解决不了问题.
    我有一次让它写一个处理图片的代码,它各种高大上的概念,没听说过的算法名,把我唬得一愣一愣的,我让它按这个思路实现代码,结果是正确的,就是很慢,处理一张图片要八九分钟.
    让它优化速度,它又提出了四五个优化方案,让它实现之后,速度没变快,处理结果反而出错了,指出问题后,它又给出修复方案,如此拉扯好几轮,代码膨胀到了 300 多行,还是没解决问题.
    感觉遇到了三哥一样,理论一套一套的,各种高大上,结果代码拉一坨,很心累.
    我看偷懒不成,只能硬着头皮看代码,了解它的思路,然后发现了更好的实现路径,告诉它:



    结果它一轮就输出了可用的正确代码,整个方法不到 100 行.
    所以目前 Claude 写代码还不能超出你自己的能力范围.如果是稍微复杂一点的问题,你不搞懂,光指望 Claude 的话,它有不小的几率绕死你.
    kenshinhu
        24
    kenshinhu  
       16 天前   ❤️ 1
    @monosolo1on1 算法的可能通过 Agent 来让 cursor 自己调试,来通过迭代来处理。
    这个问题也同样在移动开发上出现,可能是 LLM 对依赖号的版本不敏感和没有一个及时的反馈越写越乱。
    话说, 感觉 Claude 3.7 并不比 Claude 3.5 要好
    shunia
        25
    shunia  
       16 天前   ❤️ 1
    知识领域的问题,不是 AI 不够聪明,是你这个领域它可用的内容太少。

    我实测也遇到过很多次,做的项目全网的可用内容都非常少,基本上问完问题后 100%出问题,用啥模型也不好使。这也是没办法的事情。
    zqx
        26
    zqx  
       16 天前 via Android   ❤️ 1
    ai 经常说一些不存在的库,还伪造 github issue 地址让我自己去看,我问他一个我自己发布在 npm 的库怎么用,他开始瞎编。用 ai 有基本的判断能力,不然就是被他随便糊弄
    ppxppx
        27
    ppxppx  
       16 天前 via Android   ❤️ 1
    昨天刚修了一个折磨我好久的 bug (修了几天了),结果发现是以前用 chatgpt 写的一段代码错了。很简单的东西,求三阶逆矩阵,图方便用 ai 写了也没测,结果坑死了,把其他逻辑梳理了很多遍结果错在最基础的地方。总结,虽然 ai 写代码确实挺厉害,但是 ai 写的代码得多写测试,人会犯的错 ai 也会。
    zomco
        28
    zomco  
       16 天前
    @monosolo1on1 有立场的话会不会变得很倔,死不认错
    lts9165
        29
    lts9165  
       16 天前
    @musi 明白,在我自己的领域看他写代码就是这种感受
    kevinxzhao
        30
    kevinxzhao  
       16 天前
    吹 claude3.7 的人太多了。
    wyntalgeer
        31
    wyntalgeer  
       16 天前
    @monosolo1on1 #15 为啥我让她检查代码经常信誓旦旦说没问题,我实际运行也没问题,而看你的 prompt 那么奔放,她给你奔放的写没什么问题吧?
    yuxian
        32
    yuxian  
       16 天前   ❤️ 1
    恭喜题主,遇到了 AI 编程的上限了。这基本上是所有 ai 的通病,一旦遇到细化领域,就开始抓瞎了。基本上没有好的解决办法。需要给更多的示例和表示,通过 prompt 更精准的控制范围。但这样做的话,还不如自己上手写了。
    但,这也是程序员目前的价值所在,简单重复的活儿,如 curd ,基本上一次过。需要复杂的物理算法,还是得自己写。写好核心部分,剩下的让 ai 来包装,加上各种检测,非空判断。
    能用第三方库,就用第三方库,ai 最擅长这些 api 的组合。
    j4fun
        33
    j4fun  
       16 天前   ❤️ 1
    恭喜楼主一时半会不会被取代~值得高兴哈哈哈
    GuLuDaDuiZhang
        34
    GuLuDaDuiZhang  
       16 天前   ❤️ 1
    ai 能提供个思路,能给你起个头,具体实现还是得自己关注,最好是拆分成小任务让 ai 分析实现然后自己 review 整合,除非完全不了解这块,不然不能全部照抄或者只靠 ai 生成。

    我之前遇到个很简单的问题,定义的几个常量字符串文本里有转义字符,导致程序执行结果不对,问 ai 问了几次非得写一大堆改造一大堆代码去分析拆解这个字符串,纳闷这里原来这么复杂吗,自己一看字符串硬编码的,在里面再多加斜杠取消转义就行了。。
    kjstart
        35
    kjstart  
       16 天前
    @monosolo1on1 你终于当上 pm 了竟然希望程序员有自己的立场?
    monosolo1on1
        36
    monosolo1on1  
    OP
       16 天前 via iPhone
    @j4fun 我倒是非常希望自己能被取代,要做的事情还有很多,又雇不起人,哈哈😁
    monosolo1on1
        37
    monosolo1on1  
    OP
       16 天前 via iPhone
    @kjstart 经典的问题,忍不住笑了
    bbao
        38
    bbao  
       16 天前
    @mumbler 你要不要试试楼主的需求看看你的结果如何?
    GaGim
        39
    GaGim  
       16 天前
    我用 claude3.7 写一些逻辑稍微复杂的代码,比 grok 还弱,到处吹的神乎其神
    z1060450187
        40
    z1060450187  
       16 天前
    我觉得 cursor 下载变得很傻,给了上下文也不会看
    xausky
        41
    xausky  
       16 天前   ❤️ 1
    确实是这样,就是你一看就知道该怎么干的活让它干它干的不错,你省脑子和时间。如果是让它干连我自己都得研究一番才能搞定的东西那它就开始胡扯抓瞎了。
    flyingghost
        42
    flyingghost  
       15 天前   ❤️ 1
    我现在主要做几件事:
    1 ,给方案给思路,这主要集中在我不熟悉的领域。
    2 ,CRUD boy & API boy ,这是 cursor 的强项。
    3 ,老老实实 tab 键低爽一下就得了。

    我已经跟老板吹了 cursor 牛逼了,现在逐渐发现它的天花板居然比我想象中的低这么多,很尬啊。。。
    crackidz
        43
    crackidz  
       15 天前   ❤️ 1
    解决复杂问题最好上 reasoning 或者 thinking ,否则会发现很多问题,上了不一定会全解决,但是成功率会高很多
    caocong
        44
    caocong  
       15 天前   ❤️ 1
    我用 cursor 就是各种尴尬,简单的响应速度不如我手快,复杂的详细说明半天最后的结果也不满意全部 reject 重来。

    就像带一个刚毕业的大学生,你得考虑他的水平限制,给他一点一点说明清楚需求,指明代码风格方向,听不懂就给他写个例子,来照着这个例子改,唉不是这样改的,唉怎么把我例子改了,唉你咋拒绝输出了,唉还是我自己来吧。
    samnya
        45
    samnya  
       15 天前
    作为 Javaer 感觉怎么用怎么不顺手,就是 controller 、service 、dto 之类的这坨已经有固定的项目结构了,但你即使很详细跟他说,它也不太会按照原本的代码风格来写,也会创建很多重复代码。
    比如 service 已经有功能相近的查询代码、dto 返回类也已经有了,但它不一定包含进了上下文里面,所以 AI 总还是想要按照它觉得的方式再写一次,就增加了很多重复代码,而且和原本的风格完全不同。给它指导的时间,自己手打都做好了。
    总的来说还是上下文长度的问题。大项目里面,即使是人脑也不能保证完全记得所有写过的函数。不记得的地方也就和 AI 一样原地再重写一坨。只不过目前人脑的上下文长度比 AI 大多了而已。
    rogerer
        46
    rogerer  
       15 天前
    Let us verify step by step, 过程监督虽然被训练推理模型抛弃了,但是对使用 copilot/cursor 还是很好用。在开始的时候和 cursor 聊清楚需求,中间及时介入防止它走偏,以及尽可能短的上下文,往往能很好提升产出质量。
    现在的辅助编程还是从手动挡切换到自动挡,还没到自动驾驶的阶段。
    hueralin
        47
    hueralin  
       15 天前
    别质疑,质疑它就抓瞎。
    kakakakaka8889
        48
    kakakakaka8889  
       15 天前
    @hdczsf 都知道思路了那还要它写干啥
    hdczsf
        49
    hdczsf  
       15 天前
    @kakakakaka8889 脏活累活交给 AI,我动嘴,它动手,我指挥,它干活.
    原来陷入繁琐细节中要折腾一天的代码,现在 1 个小时就干完了.
    xausky
        50
    xausky  
       14 天前
    @flyingghost 就怕老板信了,然后给你疯狂加活。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3811 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:21 · PVG 18:21 · LAX 03:21 · JFK 06:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.