乐于分享
好东西不私藏

AI 编程时代的软件工程 03|AI 编程真正难的是让它不乱跑

AI 编程时代的软件工程 03|AI 编程真正难的是让它不乱跑

队用 AI 的分水岭,不是会不会生成,而是能不能吸收生成

AI 编程工具最迷人的地方,是它让人感觉很多事情突然变简单了。

写一个页面,简单了。

写一个接口,简单了。

补测试、改文档、查 bug,也都变快了。

但团队真正开始大规模使用 AI 后,会发现另一个问题:

AI 不怕不会写,怕的是写得太快、改得太多、错得太像真的。

这时,难点就不再是“让 AI 动起来”,而是“让 AI 不乱跑”。

一、AI 的问题常常不是能力不足,而是边界不清

很多 AI 开发事故,并不是因为 AI 完全不会。

恰恰相反,它常常是因为太愿意帮忙。

你让它修一个 bug,它顺手重构了旁边的模块。

你让它补一个测试,它顺手改了被测代码。

你让它解决类型错误,它把类型放宽到失去意义。

你让它接一个库,它编了一个看似合理但根本不存在的 API。

这些行为的共同点是:目标听起来对,但边界不清。

所以团队用 AI,不只是要写 prompt,更要定义边界。

有些地方可以让它自由发挥。

有些地方需要人看一眼。

有些地方绝对不能碰。

有些地方连续失败就应该停下来。

这其实不是技术细节,而是一种工程纪律。

二、好的自动化,一定有停止条件

很多人谈自动化,只谈“能不能继续往前走”。

但成熟系统更关心另一个问题:

什么时候应该停?

AI 也是一样。

如果它连续几次修不好同一个问题,就不应该继续盲改。

如果它开始扩大修改范围,就应该慢下来。

如果它需要碰权限、数据、部署、安全,就应该把控制权交还给人。

自动化不是一路绿灯。

自动化真正成熟的标志,是它知道什么时候该踩刹车。

三、任务越小,AI 越可靠

AI 不是不能做大项目。

但大项目不应该用“大指令”交给它。

“帮我重构整个后台”这种话,对人也不够清楚,对 AI 更危险。

更好的方式,是把大目标切成一个个能看见边界的小目标。

不是为了形式主义,而是因为小目标更容易验证:

·改了什么更清楚

·影响范围更清楚

·测试是否通过更清楚

·失败后回退更容易

·人也更容易判断质量

AI 的优势是速度。

工程要做的是把这种速度切成可吸收的颗粒度。

四、上下文不是越多越好

还有一个容易被忽略的问题:AI 读太多东西,也会变差。

很多人以为,把整个代码库都塞给 AI,它就会更聪明。

现实往往相反。

无关上下文越多,AI 越容易失焦。

旧文档、废弃代码、相似模块、历史方案,都可能让它产生错误联想。

这就像让一个新人一次性读完整个公司网盘,然后要求他修一个小 bug。

真正有经验的人,不会什么都读。

他会先定位,再打开相关文件;如果不够,再有理由地扩大范围。

AI 也应该这样。

上下文是一种资源,不是垃圾桶。

五、不要只相信提示词

提示词很重要。

但如果团队只靠提示词约束 AI,迟早会失望。

因为提示词影响的是行为倾向,不是最终事实。

真正能决定结果的,还是那些更硬的东西:

·测试

·类型检查

·代码审查

·运行环境

·日志

·回滚能力

·权限边界

这也是为什么 AI 时代反而会重新重视“老派工程能力”。

当生成变容易,验证就会变贵。

六、从会用 AI 到能管理 AI

个人使用 AI,重点是效率。

团队使用 AI,重点是秩序。

个人可以容忍多试几次。

团队会更关心可追溯、可审查、可回滚。

个人可以说“它帮我写好了”。

团队会追问“它改了什么,为什么改,谁批准,怎么验证”。

这就是 AI 辅助开发真正的分水岭。

不是谁更会写 prompt。

而是谁更能把 AI 的产出放进一个稳定系统里。

结语

AI 编程的未来,不会停留在“帮我写代码”。

它会变成一种新的生产方式。

但任何生产方式成熟之前,都会先经历失控、返工和治理。

团队真正要学的,不只是如何让 AI 更聪明,而是如何让 AI 在边界内释放聪明。