先用起来,再谈立场

我从 2023 年开始把 AI 辅助编程放进日常,到现在三年多,态度既不热衷也不排斥,基本把它当成一个记性很好、但不对结果负责的搭档。它确实替我省了大量时间:查不熟的 API、写重复的样板代码、把一个陌生报错翻译成可能的原因、给一段旧代码补注释草稿。这些活以前要开好几个标签页翻半天,现在一段提示就能给个起点。但我从不让它直接决定写进项目的东西,起点和终点之间还隔着我自己跑一遍、读一遍。

我一开始也试过整段照搬,结果很快就不敢了。不是它写得差,是写得太顺,顺到我会下意识跳过检查,而代码这东西跳过检查就等于把风险直接搬进仓库。

它最有用和最危险的地方

最有用的是破除空白:面对一个不熟的库,先让它给个最小可跑的例子,我照着改,比从零啃文档起步快得多;还有排查思路,把报错和版本贴给它,常常能列出几个我一时没想到的方向,帮我少钻牛角尖。最危险的也在这里,它给出的东西看起来太完整了,完整到容易让人跳过验证。我遇到过函数签名看着合理、实际那个版本里根本没有的参数,也遇到过一段逻辑在示例数据上全对、边界条件全错,都是因为当时图快没跑测试。

所以我给自己立了三条:凡是涉及版本相关 API,回头对照官方文档确认一次;凡是生成的数据处理逻辑,必须用自己的边界样例跑一遍;凡是安全相关、权限相关、会写库的代码,一律自己从头写,不拿来当底稿。第三条最不讨巧,但线上出问题时半夜起来查日志的是我,不是它。

它没改变什么

用了三年,我的技术栈没因为它换掉,调试能力也没退化,反而因为要判断它给的对不对,读代码比之前更细了。真正被压缩的是查资料和敲样板这两段,而想清楚需求、拆清边界、确认线上行为这三段一点没少,也没法少。我甚至觉得,工具越好用,越要求人先知道自己要什么,否则只是更快地生成一堆跑不通的东西。

写博客这件事也受影响:我更愿意记那些它给不出、或者给错了的坑,比如某个配置项在特定版本下的静默行为、某次备份脚本的边界条件、某台机器上才复现的权限问题。通用知识它比我背得全,但我在 2026 年这台机器上踩过的这一步,只有我自己写得出来。这大概也是这个博客还值得继续写下去的理由之一。

我的结论很朴素:把它放在帮我起跑的位置,不放在替我签字的位置。签字的人始终是我,出了线上问题也是我半夜起来查日志。