社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

CSDN • 4 周前 • 39 次点击  

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

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

原文链接:https://coder.com/blog/coding-with-claude-code

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

以下为译文:

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

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

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

任务 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 不是魔法,但如果放在合适的环境里,它确实有用,并且进步很快。

推荐阅读:

一文完整回顾黄仁勋年度演讲,开源人形机器人通用模型 GR00T-N1,将迪士尼变为现实 | GTC 2025

大模型“神仙打架”,掀起复现潮、技术大升级后,我们需要关注什么?| 万有引力

倒计时 30 天!2025 全球机器学习技术大会全日程官宣!

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180250
 
39 次点击