← 最新论文
💻 computer science

PatchTrack: A Comprehensive Analysis of ChatGPT's Influence on Pull Request Outcomes

该研究通过开发自动化工具 PatchTrack 分析了 338 个包含 ChatGPT 使用的拉取请求,发现开发者很少直接采纳 AI 生成的代码,而是将其作为起点进行选择性提取、结构整合与迭代优化,表明生成式 AI 在协作软件开发中的影响已超越代码生成,延伸至开发者的推理、适应及审查协商过程。

原作者: Daniel Ogenrwot, John Businge

发布于 2026-04-07
📖 1 分钟阅读☕ 轻松阅读

原作者: Daniel Ogenrwot, John Businge

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文就像是在观察一场**“人类程序员与 AI 助手(ChatGPT)共同烹饪”**的热闹厨房。

想象一下,软件开发就像做一道复杂的菜(比如一个软件功能),而“拉取请求”(Pull Request)就是厨师把做好的菜端给主厨(项目维护者)审核,看能不能端上餐桌(合并进项目)。

以前,这道菜全是人类厨师做的。现在,人类厨师开始用 ChatGPT 这个“超级食谱助手”来帮忙。这篇研究就是去厨房偷看,看看当人类厨师用了 ChatGPT 的建议后,主厨们到底是怎么反应的。

以下是这篇论文的核心发现,用大白话和比喻来讲:

1. 核心发现:没人会把 AI 做的菜“原封不动”地端上桌

研究发现,完全照搬 ChatGPT 写的代码(就像直接端上 AI 做的菜)是非常罕见的

  • 数据说话:在那些被采纳的代码中,中位数只有 25%。这意味着,如果 AI 给了你 100 行代码,人类厨师通常只会挑出 25 行有用的,剩下的 75 行要么被扔掉,要么被大改。
  • 比喻:ChatGPT 就像一个**“初级学徒”**。它跑过来递给你一把切好的洋葱(代码片段),说:“看,我切好了!”但主厨(人类开发者)通常会说:“切得不错,但太厚了,而且我要的是炒洋葱,不是生洋葱。你帮我改一下火候,再切细点。”
  • 结论:大家把 AI 生成的代码当作**“草稿”或“灵感起点”**,而不是最终成品。

2. 人类厨师是怎么处理 AI 建议的?(四种情况)

研究把人类厨师的反应分成了四类:

  • 情况 A:直接采纳 (Patch Applied)

    • 比喻:AI 切的菜正好符合主厨的口味,甚至不需要改。
    • 现实:这种情况很少见(只占一部分),通常是因为 AI 碰巧猜对了项目的风格和需求。
  • 情况 B:挑挑拣拣 (Patch Not Applied)

    • 比喻:AI 端来一盘菜,主厨说:“这盘菜里的盐放多了,而且我不吃香菜。把香菜挑出来,把盐减掉,剩下的肉我留着。”
    • 现实:这是最常见的情况。开发者会提取AI 代码中的核心逻辑(比如一个算法思路),但会重写整个结构,让它符合自己项目的规矩(比如命名规范、架构风格)。
  • 情况 C:只问思路,不要代码 (No Patch Generated)

    • 比喻:厨师问 AI:“这道菜怎么做才好吃?”AI 没有直接给菜谱,而是说:“我觉得你应该先炒香蒜,再放肉,这样更香。”厨师听了这个建议,自己重新动手做了。
    • 现实:很多时候,开发者用 ChatGPT 不是为了要代码,而是为了查资料、改文档、起名字、或者调试思路。AI 在这里扮演的是“顾问”而不是“代笔”。
  • 情况 D:这道菜被退回了 (Closed Pull Request)

    • 比喻:厨师端来一道菜,主厨尝了一口说:“虽然味道还行,但这道菜不符合我们餐厅的菜单主题,或者你用的盘子不对。”于是这道菜被撤下去了。
    • 现实:有些包含 AI 建议的提交被直接关闭了。原因通常不是代码写得烂,而是**“不合群”**(比如不符合项目长期规划、重复了别人的工作、或者没遵守项目的行政规定)。

3. 为什么 AI 写的代码不能直接用?

这就好比**“万能食谱”和“自家厨房”的冲突**:

  • 风格不搭:AI 写的代码可能很通用,但你的项目有特殊的“家规”(比如必须用某种特定的注释方式,或者特定的架构模式)。
  • 信任问题:主厨(维护者)不信任这个“学徒”(AI)是否真的懂这道菜的全部背景。他们担心 AI 可能会“幻觉”(胡编乱造),或者漏掉一些关键的细节。
  • 需要“人情味”:代码不仅仅是跑通就行,还要让其他人类同事看得懂、好维护。AI 生成的代码往往缺乏这种“人情味”和上下文理解。

4. 这篇研究告诉我们什么?(给普通人的启示)

  • AI 是“副驾驶”,不是“自动驾驶”
    你不能指望 ChatGPT 自己把车(软件)开好。它更像是一个坐在副驾帮你指路、查地图、甚至帮你写个导航指令的助手。但方向盘必须握在人类手里

  • AI 的价值不仅仅是“写代码”
    即使最后没用上 AI 写的那行代码,它可能已经帮你理清了思路优化了文档,或者帮你避开了一个坑。它的价值在于**“启发”,而不仅仅是“产出”**。

  • 未来的工作模式
    未来的程序员更像是一个**“编辑”“导演”。你的工作不再是从零开始写每一个字,而是审核、修改、整合**AI 生成的内容,确保它们符合整体的艺术(项目)要求。

总结

这篇论文就像是在说:“别指望 AI 能直接给你端上一盘完美的满汉全席。它更像是给你提供了一堆顶级的食材和几个绝妙的食谱灵感。真正的厨师(人类开发者)需要把这些食材挑挑拣拣、重新调味、摆盘,最后才能做出一道符合餐厅标准的美味佳肴。”

AI 确实改变了软件开发,但它没有取代人类,而是让人类从“写代码的工人”变成了“管理代码的艺术家”。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →