作者:Gwen Davis,Carolyn Galvin
排版:Alan Wang
人工智能技术能助力团队实现前所未有的开发提速,但与此同时,也可能引发各类漏洞、故障与问题。运用以下策略,既能保持开发效率,又能牢牢把控代码质量。
如果你无法信任自己交付的代码,那么一味追求更快又有什么意义?
我们已经在工作流程中使用 AI 有一段时间了,毋庸置疑,日常开发的效率被大幅提升了。过去需要几个小时完成的任务,如今几分钟就能搞定;有时甚至在你早晨那杯咖啡还没喝完之前,一个完整的功能就已经成形。
但我们也同样体会过速度的另一面:当 AI 在缺乏明确方向和防护机制的情况下被使用时,往往会生成所谓的 AI slop —— 看似能跑、却缺乏上下文的半成品代码拼接在一起,悄无声息地积累着 bug、错误的依赖引用,以及技术债务。
在这个全新的时代,快已经不够了。真正拉开团队差距的,是精准度与质量。
“最优秀的车手并不是单纯跑得最快的人,而是在高速下依然保持平稳和掌控的人。”GitHub 产品副总裁 Marcelo Oliveira在 GitHub Universe 2025上表示,“速度和掌控并不是对立的,它们会相互强化。”
那么,如何才能两者兼得?如何在保持高速前进的同时,让代码依然干净、可靠,并始终掌握在自己手中?以下是三项关键策略:
Marcelo Oliveira
https://www.linkedin.com/in/marcelogoliveira22/?wt.mc_id=3reg_webpage_reactor
GitHub Universe 2025
https://githubuniverse.com/?wt.mc_id=3reg_webpage_reactor
技巧一:
把速度与质量视为一个整体,而不是二选一
我们很容易接受那些看起来“很精致”的 AI 生成代码,却忽略其背后潜藏的问题。然而,没有质量保障的速度,并不能真正帮助你更快交付,它只会让风险在未来不断叠加、放大。因此,真正成功的团队和组织,都会在利用 AI 提升开发速度的同时,配套建立清晰而有效的防护机制。
这正是 GitHub Code Quality(目前处于公开预览阶段)所要解决的问题。GitHub Code Quality 是一款由 AI 与 CodeQL 驱动的代码分析工具,能够在你开发的同时,持续发现整个代码库中的可维护性问题、可靠性风险以及技术债务。以下是开始使用它的方式:
一键启用
在仓库级别开启后,GitHub 会结合 CodeQL 与基于大语言模型的检测能力,对你的代码进行分析,帮助你清晰了解代码库中的可维护性与可靠性问题。
在每一个 Pull Request 中获得自动修复建议
当你创建 Pull Request 时,GitHub Code Quality 会立即标记出未使用的变量、重复的逻辑、潜在的运行时错误等问题。下面是一个示例:这段 Pull Request 中的代码“可以运行”,但还远未达到生产级别的要求。
exportfunctioncalculateFuelUsage( laps, fuelPerLap) { constlastLap = laps[laps. length- 1]; // unused variable
functiontotalFuel( laps, fuelPerLap) { returnlaps. length* fuelPerLap; }
// duplicated functionfunctiontotalFuel( laps, fuelPerLap) { returnlaps. length* fuelPerLap; }
returntotalFuel(laps, fuelPerLap);
GitHub Code Quality 会基于 AI 与 CodeQL 给出改进建议,并提供一键修复功能:
无需额外分流、也不会拖慢节奏,只有干净、可靠的代码。
设定并执行你的质量底线
通过规则集,你可以阻止未达到团队标准的代码合并。在不依赖评审者意志力、也不牺牲开发效率的前提下,持续保持一致的代码质量。
揭示(并修复)遗留的技术债务
AI Findings 页面会高亮显示团队当前正在修改的文件中的问题,帮助你在问题正处于当前关注焦点时顺手修复,减少频繁的上下文切换。
一句话总结:
AI 带来的是速度,GitHub Code Quality 带来的是掌控力。两者结合,让你在无需取舍的情况下,既能跑得更快,又能构建得更好。
了解更多关于 GitHub Code Quality 的信息👉
GitHub Code Quality
https://docs.github.com/code-security/code-quality/concepts/about-code-quality/?wt.mc_id=3reg_webpage_reactor
绿色软件
https://greensoftware.foundation/articles/what-is-green-software/?wt.mc_id=3reg_webpage_reactor
了解更多关于 GitHub Code Quality 的信息
https://github.blog/changelog/2025-10-28-github-code-quality-in-public-preview/?wt.mc_id=3reg_webpage_reactor
技巧二:
做驾驶员,而不是乘客
AI 可以快速生成代码,但质量从来不是只靠自动化就能保证的。GitHub 一直相信,真正重要的是为开发者提供写出高质量代码的工具——从 IDE 中的 Copilot,到 Pull Request 里的 GitHub Copilot 代码评审,再到 GitHub Code Quality:它们不仅能让你清楚地看到长期存在的问题和技术债务,还能提供可执行的修复建议,帮助你真正解决这些问题。
这些能力赋予你设定方向、标准和边界条件的主动权。你的意图越清晰,AI 就越能发挥应有的价值。
下面是一个简单但非常有效的提示词框架,可以帮助你做到这一点:
说明目标,而不只是动作
把提示词当成是在给另一位工程师下达指令:你给出的信息越明确,最终产出的结果就越好。
不好的提示词:
更好的提示词:
明确约束条件
例如:
“不引入第三方依赖”
“必须向后兼容 v1.7”
“遵循现有的命名规范”
提供参考上下文
可以链接相关文件、文档、现有测试,或架构设计决策。
指定输出形式
是 Pull Request、diff、patch、说明性文字,还是代码块。
借助 GitHub Copilot Coding Agent,你甚至可以分配多步骤任务,例如:
请注意,在这个过程中,思考和决策的责任仍然在你,而执行的责任则交给了 Agent。
一句话总结:
AI 负责加速执行,而你的清晰意图——再加上 GitHub 提供的防护机制——才是把这种加速转化为高质量软件的关键。
了解更多关于 Coding Agent 的信息👉
IDE 中的 Copilot
https://docs.github.com/en/copilot/how-tos/get-code-suggestions/get-ide-code-suggestions/?wt.mc_id=3reg_webpage_reactor
Pull Request 里的 GitHub Copilot 代码评审
https://docs.github.com/en/copilot/how-tos/use-copilot-agents/request-a-code-review/use-code-review/?wt.mc_id=3reg_webpage_reactor
GitHub Code Quality
https://github.blog/changelog/2025-10-28-github-code-quality-in-public-preview/?wt.mc_id=3reg_webpage_reactor
GitHub Copilot Coding Agent
https://docs.github.com/copilot/concepts/agents/coding-agent/about-coding-agent/?wt.mc_id=3reg_webpage_reactor
了解更多关于 Coding Agent 的信息
https://github.com/features/copilot?utm_source=blog-universe-ai-control&utm_medium=blog&utm_campaign=dec25postuniverse/?wt.mc_id=3reg_webpage_reactor
技巧三:
构建思考过程的可见依据,而不只是输出结果
当 AI 承担越来越多的执行性工作时,真正拉开开发者差距的,是你能否清晰地表达自己的决策、取舍以及背后的思考过程。如今,光写出代码已经不够了,你还需要在功能的整个生命周期中,展示自己是如何思考问题、评估方案并推进实现的。
以下是一个可以提升文档信息传达效果的最佳实践:
创建一个 Issue,把为什么讲清楚
简要说明问题是什么、怎样才算成功、存在哪些约束条件,以及潜在风险。
清晰命名分支,认真提交代码
使用有意义的分支名称和提交信息来阐述你的思考过程,而不只是记录你的按键操作。
使用 Copilot 和 Coding Agent 构建功能,同时记录决策
简要说明你为什么选择某种方案,而不是其他方案,以及曾考虑过哪些替代选项。
在 Pull Request 中提供信息丰富的上下文
包括为什么要做、做了哪些改动以及考虑过哪些替代方案的简要说明。
例如,不要只写:
可以改为:
一句话总结:
代码展示的是你做了什么,而文档则展示了其重要性所在。在这个全新的 AI 时代,后者与前者同样关键。