新一项 GitHub Copilot 研究发现“代码质量面临向下压力”
GitClear 的新研究表明,GitHub Copilot 及类似的 AI 编码助手与更多 churn、重复代码以及对 DRY 等实践的遵循度下降有关,引发了人们对长期代码质量的担忧。评论者认为,AI 工具在样板代码、测试和“起步阶段”非常有效,但也常会生成隐蔽地错误或天真的方案,尤其对经验较少的开发者来说更难调试。也有人质疑研究方法,认为真正的问题在于团队如何使用这些工具以及他们优化什么;他们警告说,围绕速度和代码行数的激励可能会放大这些缺点。
对代码质量和 churn 的感知影响
- 许多评论者认为,Copilot/LLMs 会增加“勉强还行”的代码、复制粘贴和 churn,往往违反 DRY,并带来未来技术债务。
- 也有多人描述了真实事件:大量使用 AI 导致生产代码脆弱、临时重写,以及救火式修复。
- 另一些人则认为,当任务本身很简单或生命周期很短时,较低的质量是可以接受的,而且并非所有 churn 都是“有缺陷”的——它也可能反映了更低成本的试验。
研究方法与局限
- 链接中的研究被认为有趣,但方法上较弱:它是根据仓库指标推断相关性,而并未直接知道哪些代码是 AI 生成的。
- 有人指出,回归分析使用的数据点很少,而且没有控制其他因素(例如 COVID 期间的招聘/裁员、技术经济环境变化)。
- 即便是同情该研究的读者也强调,它无法证明因果关系,只能说明 2023 年看起来与更早年份不同。
开发者如何使用 AI 工具
- 常见的“好”用途:样板代码、无聊的配置、重复性重构、测试、docstring、提交信息、简单 SQL、OpenAPI 规范、单行自动补全。
- 许多人把 LLM 当作“聪明的橡皮鸭”或更好的搜索:用来提问、核对文档和 API、细化设计。
- 很多人觉得 Copilot 不擅长复杂逻辑、更深层的架构,或非平凡的 SQL;审查其输出的成本有时会超过自己直接写代码。
学习、初级开发者与技能退化
- 一个强烈担忧是,初级开发者会“按 Tab 键”而不是学习,从而依赖 AI,无法判断代码质量。
- 也有人反驳说,如果你已经有足够的知识去评判答案,并用它来澄清概念,那么 LLM 可以是强大的导师。
生产力、激励机制与工艺精神
- 有些人报告了明确的生产力提升,并乐于接受稍差的代码来换取更快的结果;也有人因为调试 AI 输出的成本更高而取消订阅。
- 还有人把这与更广泛的趋势联系起来:更高产出的压力但薪资停滞、管理层跟踪 LOC/velocity,以及编程从“工匠”风格转向“劳工”风格。
- 关于 DRY/SOLID 和抽象的争论也随之出现:有人把复杂性归咎于过度 DRY 和各种模式;也有人认为它们对于可维护性仍然至关重要,尤其是在 AI 使批量生成代码变得廉价之后。
更广泛的担忧与类比
- 人们把这与计算器、拼写检查、互联网,甚至写作本身相比较:每一种新工具都曾被说会让人“变笨”。
- 有些人担心长期来看,未经辅助的人类技能会被侵蚀,并形成一个反馈回路:AI 生成的代码会劣化未来的训练数据。
- 另一些人则认为 AI 还很早期、被过度炒作,但最终只是另一种工具,其净影响将取决于人类如何调整工作流、测试和激励机制。