去年 Vibe Coding 突飞猛进,AI 编程已经逐渐普及。 很多团队对于写代码这件事的定义开始有一些变化。变化在于产出代码的方式:越来越多的代码来自模型,程序员更多时间花在和模型聊天,把问题说清楚、把边界卡住、把结果验明正身。
我愿意称之为「程序指导员」。写代码仍然在发生,但我们的动作从「逐行敲」转到「聊天与校验」。
1. 程序指导员在做什么
把一段需求交给 AI,得到一段能跑的代码,然后多聊几句,一个功能就完成了。但是这个功能是不是可维护、可上线、可回滚、可观测、可审计,就不太确定了。
程序指导员的核心工作通常包括这几件事:
把需求翻译成可执行的任务需求里混着业务语言、边界条件、历史包袱、隐含约束。模型的信息中这些可能是缺失的。我们要先做一次结构化翻译:输入是什么、输出是什么、失败怎么处理、性能底线是什么、兼容范围是什么。
把任务拆成模型能稳定完成的块一次性让模型写完一个完整功能,也可以,让 CC 多跑一段时间,但成功率不稳定。更稳的方式是拆成小块:数据结构、接口定义、核心逻辑、错误处理、测试、文档、迁移脚本,各自生成、各自验证,然后再组装。这种方式让我们更有掌控力,知道发生了什么,过程可控。
给足约束,减少「自由发挥」空间约束要可检验:必须用现有依赖、必须兼容某版本、必须遵守公司日志规范、必须不新增公网访问、必须在某条 SLA 内、必须覆盖某些用例。
验收与兜底模型会给出看起来合理的实现,也会在边界上“编”。程序指导员要像做 code review + 测试负责人那样工作:读关键代码、跑测试、补测试、压测、看日志、看回归风险、看安全风险。最后要能回答一句话:这段代码出问题,谁来修、怎么定位、怎么回滚。
这套工作方式和当前的 CC 一把梭相比,并不先进,甚至有些落后。
和以前相比,以前也有模板代码、脚手架、复制粘贴、搜索引擎。不同点在于:AI 把「生成」能力推到台前,生成速度极快,错误也更隐蔽,导致「指导与验证」的权重被迫上升。
2. 变了什么
2.1 输入从「代码」变成「任务说明书」
以前的输入主要是我们写的代码和我们改的代码。现在多了一种主要输入:我们写给模型的任务说明书。
这份说明书的质量,直接决定产出质量。写得好,模型像一个执行力强的中级工程师;写得差,模型像一个自信的实习生。
说明书里最重要的内容通常包括:
- 环境:语言版本、框架版本、已有目录结构、现有依赖、运行方式(一般在规则上下文中给出)
- 接口:入参、出参、错误码、异常策略、幂等、重试、超时
- 验收:必须通过哪些测试,用哪些样例验证,输出应满足哪些断言
把这些写清楚,能把 80% 的返工挡在模型生成之前。
2.2 工作节奏从「连续编码」变成「短回路迭代」
传统编码经常是长回路:写一段、跑一遍、再改。AI 编程的高效来自短回路:AI 生成完成,自动编译构建,自行测试,然后马上验收,发现偏差、立刻补约束再生成。
短回路的关键在于每一轮都要带着明确的失败信息回去:哪条测试挂了、哪个接口不对、哪个边界漏了、哪个依赖版本冲突。模型对这种「可定位的反馈」反应更稳定。
2.3 代码量不再是效率指标
代码生成变快之后,代码量会失真。以前一个人一天写 500 行算多,现在模型十秒能吐 500 行,一天几千行可用的代码随随便便。
更有意义的度量指标会转向:
如果团队还用「写了多少行」「提了多少 PR」来衡量,会很快走偏:大家都能刷产出,系统质量却下降。
2.4 「看懂代码」变得更重要
模型写的代码往往「像那么回事」,也可能更长、更绕、更喜欢堆抽象。程序指导员必须能快速识别几类问题:
以前也需要这些能力,但当代码产出速度暴涨时,「看懂与筛掉问题」的能力会直接决定我们能不能把速度兑现成质量。
3. 没变什么
变化再大,有些东西一直没变,而且变得更值钱。
3.1 对业务的理解仍然是门槛
模型可以补全语法、补齐样板、生成测试,但它很难替我们承担「业务正确性」。尤其在边界条件、例外流程、历史债务、灰度策略上,错误经常不是编译错误,而是业务事故。
谁最懂业务,谁最知道「哪些地方不能动」「哪些数据不能算错」「哪些流程不能重试」,谁就更能驾驭 AI 编程。
换一个大家更常用的词语,就是领域知识要在线,否则错了你也不知道错了。
3.2 系统设计能力仍然决定上限
模型擅长在给定结构里填充实现,不擅长从零做合理设计。系统边界怎么划、数据怎么流、接口怎么稳、状态怎么管理、失败怎么收敛、观测怎么做,这些决定了系统能不能长久演进。
如果把“设计”也交出去,模型会给一个看似完整的方案,但常见问题是:
当然,这些问题都可以通过提示词来解决,不过对于系统设计的认知还是需要我们来把握,至少我们得知道什么是好什么是坏。
系统设计这件事,仍然需要人来负责,并且要更早介入。
3.3 责任边界没有变化
代码是模型生成的,并不改变责任归属。线上出了事故,审计追责、复盘改进、长期治理,仍然落在团队身上。
在群里看到一个消息,最近有一个团队 AI 生成的导致线上数据全部被覆盖,团队绩效今年基本和他们没有关系了。
所以「让模型写」不是免责理由,反而要求流程更严:评审、测试、灰度、回滚、监控、告警、应急预案,一个都不能少。
4. 程序指导员需要哪些基础认知
4.1 对模型能力边界的认知
模型的强项:
模型的弱项:
- 对真实业务语义的可靠理解(尤其隐含规则,,因为其没有上下文,甚至有些隐含规则我们自己也没有意识到)
- 对「细微但关键」的一致性(字段含义、状态机、时序)
程序指导员要把弱项当成默认风险。
4.2 任务拆解能力
拆解不是把大需求拆成很多小需求就结束了,而是拆成“可验证”的单元。
可验证的含义是:每一块都能用编译、单测、静态检查、契约测试、跑一段 demo 来确认对不对。
拆解时常见的顺序:
这个顺序能减少返工,也更适合把生成结果分段纳入工程体系。
4.3 约束表达能力
约束要写成「可执行」的规则。
常见可执行约束:
当我们把这些写清楚,模型就可以更规范的交付了。
4.4 验证习惯与测试能力
验证还是要靠工程化手段。
最低配置的验证链路:
把这些链路搭好,AI 才能变成稳定的生产力工具。否则它更像一个加速出错的发动机。
5. 小结
程序员变成程序指导员,不是职位变了,是工作重心变了:写代码的时间变少,把问题讲清楚、把系统守住、把风险挡住的时间变多。
最近阿里出来的 P10 毕玄,在其创办的公司贝联珠贯中宣布不再按传统的专业分工,所有的人都叫 Agent 全栈工程师。
我想象中的团队也是这样,通过合并工种,减少沟通,让 AI 发挥出更大的价值。
在做这些之前,我们需要问一下自己三个问题:
答案越清楚,AI 带来的就越接近真实效率。否则只是把编码速度提上去,把返工和事故也一起提上去。
以上。