[Paper] 开发者采纳 LLM 生成的代码重构建议的模式
发布: (2026年5月6日 GMT+8 20:31)
7 分钟阅读
原文: arXiv
Source: arXiv - 2605.04835v1
概述
本文调查了软件工程师如何实际 使用 由大型语言模型(LLMs)如 ChatGPT 生成的重构建议。通过挖掘 169 条引用 ChatGPT 对话的真实 GitHub 提交,作者揭示了开发者在接受、修改或拒绝 AI 驱动的重构时出现的模式。该研究弥合了学术界对 LLM 输出的评估与开发者日常工作流之间的差距。
关键贡献
- Empirical dataset 包含 169 条 GitHub 提交,将 ChatGPT 生成的重构建议与具体代码更改关联起来。
- Adoption taxonomy 将开发者的响应划分为五种不同模式(例如,直接接受、重大重写、基于提示的细化)。
- Insightful correlation 揭示原始提示的性质、LLM 回答的有效性与开发者所做修改类型之间的关联。
- Evidence that most suggestions are used as‑is,表明当前 LLM 在重构任务中的信任度很高。
- Guidelines for tool builders 提供了在 IDE 和 CI 流水线中展示、验证和集成 LLM 重构建议的指南。
方法论
- 数据收集 – 作者在公共 GitHub 仓库中搜索提交信息,寻找包含指向 ChatGPT 对话的 URL 的提交。每个匹配项都经过人工验证,以确保该提交确实应用了模型建议的重构。
- 提交分析 – 对每个提交,比较原始代码、语言模型的建议以及提交后的最终代码。
- 模式识别 – 研究人员使用定性编码,将观察到的开发者行为归类为五种高级模式,考虑以下因素:
- 重构活动(例如,重命名、提取方法、简化条件)。
- 开发者给 ChatGPT 的 提示(清晰度、具体性)。
- 模型答案的 有效性(正确、部分正确或错误)。
- 定量总结 – 计算每种模式的出现频率,并进行统计检验,以查看提示质量或答案正确性是否显著影响所选模式。
结果与发现
- 直接接受占主导 – ≈ 68 % 的提交在没有任何更改的情况下采用了 LLM 的建议。
- 当开发者介入时,修改通常是 重大 的(例如,重构建议的代码,添加缺失的错误处理),而不是小幅度的微调。
- 出现了五种采纳模式:
1. 直接采纳
复制粘贴建议。
2. 基于提示的细化
开发者提出后续问题,收到修订后的建议,然后采纳。
3. 部分集成
只有建议的一部分适用于代码库。
4. 错误纠正
开发者在提交前修复 LLM 输出中的语法或逻辑错误。
5. 拒绝并重写
建议被丢弃,进行完全不同的重构。
- 提示质量很重要 – 更清晰、更受约束的提示会导致更高的直接采纳率。
- 模型有效性至关重要 – 当 ChatGPT 的答案包含错误时,开发者往往会进入“错误纠正”或“拒绝并重写”模式。
Source: …
实际意义
- IDE 插件 可以在 LLM 建议旁边显示置信度分数或验证检查(例如静态分析),以减少“错误纠正”的工作量。
- 提示工程工具(模板、提示自动补全)可以提升直接采纳的比例,从而节省开发者时间。
- CI/CD 集成——在合并 LLM 生成的补丁之前运行自动化测试,捕获模型出现幻觉的少数情况。
- 团队工作流——记录提示‑重构模式可以帮助团队标准化审查 AI 生成的更改,确保一致性和可追溯性。
- 生产力提升——鉴于大多数开发者会不加修改地接受建议,LLM 驱动的重构可以成为一种低摩擦的方式,在规模上提升代码可读性和可维护性。
限制与未来工作
- 样本偏差 – 数据集仅包含明确链接到 ChatGPT 对话的提交,可能导致对已经对 AI 辅助抱有热情的开发者的代表性过高。
- 语言与领域范围 – 本研究聚焦于少数流行语言(例如 Python、JavaScript);系统语言或特定领域代码的结果可能有所不同。
- 时间快照 – 分析反映的是特定版本的 ChatGPT;模型的快速更新可能会改变采纳模式。
- 未来方向 作者提出的包括将数据集扩展到其他大型语言模型(LLM),探索自动检测低质量建议的方法,以及进行受控用户研究,以更精确地衡量生产力提升。
作者
- David Schön
- Faiza Amjad
- Tehreem Asif
- Ranim Khojah
- Mazen Mohamad
- Francisco Gomes de Oliveira Neto
- Philipp Leitner
论文信息
- arXiv ID: 2605.04835v1
- 分类: cs.SE, cs.HC
- 发表时间: 2026年5月6日
- PDF: Download PDF