cursor 是 pro ,用的是 claude 4 sonnet max claude code 是 max ,用了 claude 4 opus 和 sonnet 都尝试过
我的任务是将一个 c#项目中 a.cs 中的七十多个方法按照新的格式迁移到 b.cs 中,然后抛弃 a.cs 。 实际上就是重构去除中间层,原本的程序逻辑是 b.cs 中的 70 多个方法调用 a.cs 中的 70 多个对应方法,具体实现在 a.cs 中,非常蠢,我也不知道之前写这段代码的人的思路,每次添加修改功能都需要在两个文件中进行修改。
于是我试图让 claude code 进行迁移,claude code 迁移时候光想着怎么取巧了,写了个脚本迁移,迁移完了报几十个错误,修了十几个之后,说剩下的错误都大同小异,让我先把主要任务标记为完成—— 然后把 a.cs 给删了,明明这时候压根就没法编译通过,它就说迁移已完成了。 而且经过测试,这些迁移问题很大,因为这 70 多个方法实际上签名都不一样,有的传 jObject ,有的传 JArray ,有的传自定义类型(别问我为啥写成这样,我也想知道),但是 claude code 在 b.cs 里写的实现看起来根本没有参考 a.cs 里原来的实现,就完全是在自嗨,写出来的方法最后跑起来时候风控报错:
API call 'AAAAAAAA' failed: Deserialized JSON type 'Newtonsoft.Json.Linq.JArray' is not compatible with expected type 'Newtonsoft.Json.Linq.JObject'. Path 'data', line 4, position 11.
有点离谱,我让他“一个一个进行迁移”,他也是阳奉阴违,迁移了几个然后就告诉我都看了个遍,现在没问题了。结果 diff 一下实际上就改了 3 个方法,跑起来果不其然又报一堆错。
反而是 cursor 修改的时候是真的遵照我的指令一个一个改的,可以看到思考步骤(思考了几十遍,一遍改一个方法,直到把 a.cs 里的全部迁移到 b.cs )而且一次跑通了。
本来这个迁移其实也并不难,因为大部分的迁移都是直接把 a.cs 里的代码复制到 b.cs 对应的方法,去掉 b 里面引用 a.cs 的语句就行了,没什么难度和复杂性。所以像 cursor 这样一个方法一个方法地迁移想要出错都很难,但就这点事 claude code 都干不好,属实让人火大。
1
sampeng 8 天前 ![]() 这些 ai 确实各有各的缺陷。claude code 修复 bug ,做一些新任务还行。cursor 就比较综合,绝大部分任务可以完成,但是在处理大上下文或者时间长一点,他也一样犯 2.
毕竟 cursor 这么 2-3 年优化任务调度了。要给 claude code 时间 |
![]() |
2
netnr 8 天前
先充分理解 XXX 项目 YY 、ZZ 目录下的类,再怎么(你的需求) ....
|
3
natsukage OP @netnr 我其实前面已经说过了,整个重构规划就是 Claude code 先/init 然后再分析以后提出来的。
但是它自己给了重构规划以后自己却不能按照自己的规划来实行。明显的能感觉到它是想偷懒,不愿意按部就班地一个一个方法去迁移。 就像前面说的,实际上这几十个方法一个一个手动迁移的话基本就是 ctrl c v 的事,但是 Claude code 会更倾向于自己理解一遍 a.cs 里的代码,然后自己在 b.cs 里按照自己的理解重新写一遍。 可是对于原本 a.cs 里代码签名写的很乱的这种情况,Claude code 就出现了严重的幻觉,有的方法它想当然地写了 jObject ,实际上传的是 jArray 。甚至有些方法它写出来的内容都和原方法不一样了(比如获取历史记录的方法,原本的 a 里是倒序获取记录,但是 Claude code 自己在 b 里写的是默认正序的获取) cursor 安排任务时候是真的按部就班一个一个方法改的,你能从思考过程里看出来它每次思考都是“接下来我要修改 xxx 方法”,然后在 b.cs 进行几行几行的修改,只改了目标方法这一处。所以也很难出错。 这个并不是 Claude code 没了解项目上下文的问题,感觉就是单纯的像 1 楼说的一样,不擅长进行任务调度 |
4
coolcoffee 8 天前
我上次想要让 Claude Code 拆前端微服务的时候也遇到了这个问题,第一次提的要求有点高,像让它一次性把某个 jsx 模块的依赖剥离到新项目的 tsx 模块,结果只给我迁移了第一个列表,第二个列表名字都改了,新建和编辑表单太复杂它就偷懒弄了一个功能待完成。
后面我就让它重新写,继续保持原来的 UI 框架版本以及 JSX ,然后才做的差不多能看。 感觉写代码这块应该先让它写好测试用例,然后再让它去迁移,反正测试用例先写好了,它自己会一遍又一遍的跑。 |
5
xing7673 8 天前
指令任务的话建议不要用 claude 家的,我现在 cursor 设置里只有短代码会用 sonnet 了,长需求长任务交给 gemini 了,有机会也会尝试 o3
(一个让 claude 反复修改了几十遍依然报错的代码被 gemini 一次性修好后就立马修改了日常 setup ) |
![]() |
6
mlzboy 8 天前
augment 相比这两个怎么样?
|
![]() |
7
Loocor 8 天前
有个很尴尬且无解的问题,你永远不知道是模型本身的品质导致的,还是模型供应商偷工减料导致的
|
8
flowerwow0316 7 天前 via Android
镜像站?
|
9
wyfig 7 天前
楼主用的 claude code 是自己订阅的,还是淘宝上买的国内直连的什么的?
|
![]() |
10
programApe 7 天前
@mlzboy 对比 cursor 强很多,没用过 claude code 倒是不清楚。augment 也有问题,如果项目稍微大一点,只能联系部分上下文,不管现有的部分实现,把你项目加的很臃肿,但是总体而言比 cursor 好很多。现在这些 ai 还是得不断地自己过一遍。
|
![]() |
11
tcper 7 天前
文件一长就出问题,我也遇到过,比如统一改字符串什么的,经常中间断了
|
12
natsukage OP @flowerwow0316 官网(开头说了 Claude code 是 max plan ,而且 opus 和 sonnet 都试过了)
|
![]() |
15
wweir 7 天前
|
16
wyfig 7 天前
@natsukage #13 之所以这么问是感觉跟我自己的实际体验差别有点大。 我用 claude code 官网订阅 100 美元的 max ,用了一个月,整体感觉其服从性是很不错的,除了确实就有 mock 数据的情况,不过我如果看到了会直接在它干活的时候实时发送一条消息让它调整过来。 如果没看到后面确认的时候也可以针对性的修改过来。其他情况下还是不错的,没有碰到过你说的这种问题。
|
![]() |
17
mlzboy 7 天前
怎么保证 claude code 不被封
|
18
flowerwow0316 7 天前 via Android
@natsukage 不会啊,我目前对比 cursor 能明显感觉改很多东西都不会改歪,这真的是每个人有不同的体验了。
|