客户端
游戏
无障碍

2

评论

8

1

手机看

微信扫一扫,随时随地看

手把手实测!Claude Code真的能搞定GitHub问题?

上个月,Anthropic 在发布全球首个混合推理模型 Claude 3.7 Sonnet 的同时,还推出了一款重磅 AI 代理编程工具——Claude Code。它不仅能搜索和读取代码,还能编辑文件、编写和运行测试、提交代码并推送至 GitHub,甚至支持命令行操作。简单来说,开发者可以直接把大量工程任务交给 Claude Code 处理。

这类工具的出现,引发了不少开发团队的关注:它究竟能在实际开发中发挥多大作用?为此,来自德州奥斯汀的初创公司 Coder 进行了三项案例测试,Claude Code 的真实表现如何?让我们一探究竟。

作者 | Coder 团队     翻译 | 屠敏
出品 | CSDN(ID:CSDNnews)

以下为译文:

Claude Code 一发布,我们就迫不及待地想看看它到底能干啥。这一次不是玩具级的简单测试,而是检测这款工具能否胜任我们的实际开发工作。于是,我们把开源项目和内部代码库里的 GitHub 问题交给它处理,这些问题分别来自社区用户和 Coder 工程师,看看它到底能不能解决真正的工程难题。

本文介绍了其中三个实验。我们会拆解每个实验的过程,看看 Claude Code 能做到什么程度,遇到了哪些困难,以及我们从中学到了什么。我们并没有精心挑选出成功的案例故事,而是完整展现了 Claude Code 的表现——无论是成功、失败,还是介于两者之间的情况。

Claude Code 在某些任务上表现惊艳,有些地方则摔了跟头。但总体来说,它已经足够好用,以至于一些开发者已经把它当成日常工具。更难能可贵的是,我们只给了它 GitHub 问题的链接和一点提示,它就能自己去探索代码库,搞清楚该怎么解决问题。

Thumbplayer Poster Plugin Image
播放
下一个
打开循环播放
00:00
/
00:00
倍速
3.0X
2.0X
1.5X
1.25X
1.0X
0.75X
0.5X
语言
多音轨
AirPlay
0
静音播放中,点击 恢复音量
画中画
网页全屏
全屏
error-background
你可以 刷新 试试
视频信息
1.33.6
播放信息 上传日志
视频ID
VID
-
播放流水
Flowid
-
播放内核
Kernel
-
显示器信息
Res
-
帧数
-
缓冲健康度
-
网络活动
net
-
视频分辨率
-
编码
Codec
-
mystery
mystery
-

按住画面移动小窗

X

图片

任务 1:给内部管理面板新增排序功能

📌 记录人:Hugo,Coder 的增长工程师,负责核心产品和内部工具的前后端开发。

任务概述:

我们有一个用 Next.js 构建的内部管理面板,大约 2 万行代码,主要用于显示客户创建的 GitHub 问题。现在,我们希望新增一个功能,让这些问题可以按照创建时间和更新时间排序。

结果:

我给 Claude Code 提了个需求,Prompt 是 “允许 /customer-issues 按创建/更新时间排序”,没想到的是,它直接把活干了。

它自己找到了相关代码文件,在 UI 里加了个切换按钮,让用户可以选择排序方式,还实现了排序逻辑——整个过程完全不需要额外指导。

我检查了代码,补充了一句“能不能加个选项,让用户选择升序还是降序?”,它立马就改好了。唯一的问题是它把 “升序” 和 “降序” 的定义搞反了,我手动改了一行代码就搞定了。

测试 UI 时,我还意外发现了一个原本就存在的 bug——每次 React 重新渲染时,问题列表的数据对象都会被修改,导致部分文本重复显示。我把这个 bug 在浏览器里的表现描述给 Claude Code,并提到怀疑是对象被修改导致的。Claude Code 很快找到了问题代码并修复了 bug。最后,我让它提交一个 PR,它也顺利完成了。

最终,这次改动涉及新增 114 行代码,删除 28 行,只修改了一个文件。

经验总结:

✅ 本来没抱太大希望,但 Claude Code 的结果完全超出预期。之前用过 Cursor 里的 AI 代码助手,感觉建议都不太靠谱。但 Claude Code 这次几乎是“无缝”完成任务,效果让我很惊喜。

✅ 比我自己写代码还快。上文提到的管理面板这部分代码不是我写的,我本来还要先熟悉一下,但 Claude Code 直接找到了关键部分,反而比我更快搞定。

✅ 它的成功离不开几个关键因素:任务本身比较简单、代码库相对较小、用了 Next.js 和 React 这些成熟的框架。

✅ 这次体验让我对它更有信心,尤其适合处理清晰的小任务。不过,任务如果不明确,或者代码库特别庞大复杂,它的表现就会逊色不少。

成本 & 时间:

💰 成本:不到 5 美元

⏳ 时间:Claude Code 干活 5 分钟,我审核和测试花了 40 分钟

下次会怎么做:

  • 几乎没啥需要改进的,Claude Code 表现相当出色!


图片

任务 2:macOS 原生开发

📌 记录人:Thomas Kosiewski,高级软件工程师,负责 Coder 的网络团队,涉及后端和 macOS 原生开发。

任务概述:

在处理 Apple 的权限和签名流程时(https://github.com/coder/coder-desktop-macos/pull/105 ),我们遇到了一个奇怪的问题:macOS 似乎会丢失已绑定的证书,或者有某些未知的后台进程在悄悄搞事。这个问题其实早年就有人在 Apple 论坛上提过,但 Apple 一向神秘,很多人找不到根源问题在哪。

我们让 AI 来试试,主要是想看看它能不能找到一些隐藏在 Apple 文档深处的线索,或者挖出一些已经被遗忘的老旧 API,这些东西连人都不太容易搜到。

结果:

经过多轮交互,Claude Code 最终写出了能在 macOS 上编译并运行的代码。考虑到 Swift 这些年经历了不少语言变动,这已经算是个不小的成就了。

不过,这次任务涉及的系统层面较多,还需要大量手动操作 macOS(比如禁用和删除网络扩展),所以整体来看,Claude Code 贡献了大约 30%,剩下 70% 还是得靠我手动验证和引导。

经验总结:

✅ Claude 居然能找到删除 macOS 网络扩展的 API,实在出乎意料。这些 API 既没啥官方文档,也很难搜索到,它能挖出来本身就挺神奇的。而且,生成一段能正常运行的代码本身就是个不小的成就。

✅ 让 Claude 来调整 UI 还挺省事。只要给个指令,就能让它把按钮或错误提示挪到另一个标签页,再挪回来,完全不用自己手动改,这让 UI 调整和重构变得轻松不少。

❌ 代码质量一般,适合 PoC,但不适合直接上生产。代码能跑,但离真正的生产级代码还有不小的距离。Claude 有时候会忽略已有的委托(delegates),甚至重复实现已经存在的功能。有一次,它还声称自己实现了某个功能,但实际根本没写。

成本 & 时间:

💰 成本:大约 10 美元

⏳ 时间:Claude 处理 API 花了 30 分钟,整个过程总共花了 90 分钟

下次会怎么做?

如果想让 Claude Code 直接写出“生产可用”的代码,可能需要提供更完整的上下文,并研究如何让它在代码质量上更稳定。这方面还有很多未知数,但它已经非常适合快速验证想法,至于真正落地,那就是另一回事了。


图片

任务 3:Go 语言后端开发

📌 记录人:Cian,Coder 的资深工程师,主要负责后端开发,熟悉容器编排工具,也是这部分代码的作者。过去偶尔会用 AI 工具。

任务概述:

修改一个 JSON REST API 端点,让它在执行预定义命令时,返回不同的命令输出部分:https://github.com/coder/coder/pull/16866

初始提示:

”agent/agentcontainers 包中定义了一个 DockerCLILister,其中的一个功能是列出正在运行的容器。但当前实现有个 bug——WorkspaceAgentListContainersResponse 返回的端口不对。它应该返回容器外部可访问的端口,但现在返回的是容器内部的端口。”

结果:

AI 解决了一部分问题,但需要多次重新提示,明确要求它从 NetworkSettings.Ports 里获取数据,并去重映射到相同容器端口的主机端口(这里其实还有一些细节问题,连我一开始也没注意到)。

此外,还得手动告诉它要加测试覆盖率(用默认配置),这可能可以通过调整提示词来改进。而且,它在修改代码后,需要手动提示才能重新运行整个包的测试。

另一个明显的问题是,它有点喜欢写过于复杂的代码(可以看看 commit 077d5a 代码变更),特别是在测试中对比期望输出和实际输出时,逻辑显得不够直截了当。

图片

最终,我发现现有的测试数据不足,没法确保 AI 生成的代码是正确的,所以干脆开了个新的 PR,专门补充测试数据。这可能有助于 AI 生成更准确的代码。

经验总结:

  • AI 这次表现不如预期,它似乎只是尝试了最基本的解决方案,并没有太多考虑正确性。

  • 涉及外部 API 或依赖外部工具的任务对 AI 来说更难如果事先提供示例数据,并明确要求 AI 处理这些测试用例,可能会有所帮助,但也可能导致 AI 过度拟合(即代码只针对特定测试用例有效)。

  • AI 倾向于最小改动,而不是正确修复比如,如果修改某个测试用例会暴露代码 bug,AI 更倾向于改测试用例,而不是修复实际代码。这次需要明确提示 AI 不准改测试代码,才能让它调整正确的部分。

成本 & 时间:

💰 成本:2.65 美元

⏳ 时间:总时长约 1 小时(包括初始设置),API 交互时间约 7 分 34 秒

下次会怎么做?

  • 尽可能提前提供具体的测试用例,或者教 AI 生成有效的测试数据。

  •  让 AI 在每次修改代码后自动运行整个包的测试,建立一个正向反馈循环。

  • 强制采用 TDD(测试驱动开发)。先让 AI 添加能复现 bug 的测试用例,同时禁止修改被测试代码;然后再让它修复代码,并禁止修改测试代码。

  •  提醒 AI 在最后进行代码重构(这是 TDD 里最容易被忽略的部分)。


图片

总结

这些实验让我们对 AI 代理的能力有了更清晰的认识。Claude Code 在熟悉的框架(如 React、Next.js)中处理小型、明确的任务表现不错,但遇到需要更深入推理、系统复杂度高或 API 文档不完整的情况时,就会变得吃力。

让 AI 在 Coder 的隔离工作区中运行,确保它能安全地试验代码,而不会影响真正的代码库,这一点很重要。尽管 AI 仍然需要人工监督,但现在已经有人开始把它当作日常工具来加速工作了。

此外,我们对 AI 的使用成本也有了更直观的了解。如果你打算大规模引入 AI,知道它适合什么任务、成本如何、如何安全控制它的工作,才是关键。AI 不是魔法,但如果放在合适的环境里,它确实有用,并且进步很快。

免责声明:本内容来自腾讯平台创作者,不代表腾讯新闻或腾讯网的观点和立场。
举报
评论 0文明上网理性发言,请遵守《新闻评论服务协议》
请先登录后发表评论~
查看全部0条评论
首页
刷新
反馈
顶部