当 AI 写代码:Copilot 之后的变化

git diff 只剩 12 行时,变化已经很具体:写代码的时间,可能开始少于审查 AI 生成结果的时间。

Copilot 刚出现时,最明显的变化是补全变长了。以前是补一个变量名、一个函数调用;后来变成一整个循环、一段测试、一份接口封装。那时讨论重点还是“它准不准”。现在的问题更实际:不是 AI 能不能写,而是人还要不要按原来的方式写。

补全之后,真正变化的是节奏

Copilot 早期更像快一点的输入法。你敲几下,它猜后半句。这个阶段容易理解,也容易接受,因为工作流没变:人主写,AI 补尾巴。

后来的变化更明显。现在很多 AI 编程工具会同时处理过去分散的几个动作:

  1. 读上下文
    读取当前文件、相关函数、报错信息,推测你在改什么。

  2. 生成初稿
    不只补一行,而是先给出一版可运行的结构。

  3. 解释和修补
    你继续追问“为什么这样写”“有没有边界问题”,它再迭代修改。

这会把编程从“逐行输入”推到“先审稿,再动手”。更直接的变化不是效率口号,而是注意力位置变了:键盘敲得少了,判断做得更多了。

更稳的场景,不是整包交付,而是小块闭环

AI 辅助写代码更适合“小块闭环”任务:输入清楚,输出容易验证。

例如:

数据格式转换

像 JSON 转 CSV、日志字段提取、时间格式归一化。这类需求规则明确,结果也容易核对。

重复样板代码

例如接口请求封装、表单校验、配置映射、分页查询。人不想反复写,AI 适合先搭底子。

测试用例骨架

给一个函数,让 AI 先列出正常输入、空值、异常值几类情况。断言通常仍需人工检查,但比从空白开始更省力。

报错定位的第一步

把报错栈、相关代码片段、预期行为交给它,让它先给出排查方向。这里更适合把它当作“排查建议”,不是直接采纳修复方案。

这些任务有个共同点:结果容易验。代码能不能跑、测试能不能过、输出是否一致,都能较快确认。

最容易被高估的,是“懂你的项目”

AI 写代码的限制,往往不在语法,而在“局部聪明,全局短视”。它可能会写一个函数,却未必知道这个函数会不会破坏旧接口;也可能补出一个看起来完整的类,但没有真正理解项目里的命名习惯、异常处理和权限边界。

最常见的误判是:生成结果“像那么回事”,就被当成“已经理解项目”。这两件事不是一回事。

一个实用的判断方式是看它能不能回答这三个问题:

  • 这段代码依赖了项目里的哪些约定?
  • 如果改这里,最可能影响哪个旧逻辑?
  • 这份实现里,哪些地方其实是猜的?

如果答不出来,或者答得很空,就不该把它当成已经理解了全局。

Copilot 之后,提示词没那么重要了,约束更重要

很多讨论还停留在“怎么写 prompt”。这当然有用,但在代码场景里,更关键的通常不是措辞,而是约束。

与其说“帮我优化这段代码”,不如直接给边界:

  • 不改函数签名
  • 保留现有返回结构
  • 只处理空值和异常分支
  • 输出 diff,而不是重写整个文件
  • 先解释风险,再给修改版

这些约束的作用很直接:减少自由发挥。AI 一旦开始“发挥”,小修很容易变大改。

更合适的分工通常是:

  • 人定义边界、验收结果、承担后果
  • AI 起草、补全、对照、给建议

变化不只是“让 AI 生成代码”,而是“让 AI 在护栏里生成”。

更值得养成的两个习惯

先让它说,再让它写

先问它准备怎么改、为什么这么改、可能影响什么。解释先过一遍,再出代码,更容易发现它是不是理解错了。

永远保留可回退点

不管是 Git 提交、临时分支,还是单文件对比,都要让“撤销”足够简单。AI 辅助最麻烦的不是写错,而是一次改太多,最后难以定位问题。

接下来更值得观察的,可能不是它还能多写多少代码,而是它什么时候能更稳定地说明:这段代码为什么要这样写。


当 AI 写代码:Copilot 之后的变化
https://ghost.kasumi.live/2026/03/13/当 AI 写代码:Copilot 之后的变化/
作者
Amadeus
发布于
2026年3月13日
许可协议