Reed's News
← 返回精选

手动重敲 AI 生成代码,根治认知负债

AI 52 mpweiher 2026/8/3 840 字 原文 ↗

尽管我在四月份的文章里说过不再用编程助手,但如今我个人项目里还是离不开它。

让它一口气生成完整功能会让我心里空落落的,还摸不着头绪,但用它跳过项目里那些枯燥乏味的环节,我倒是乐在其中。

不过,要是任由编程助手在项目里自由发挥,我就得背负巨大的认知负债。我可能懒得啃Django文档研究怎么给网站加标签功能,但本质上我还是想搞懂它的原理。问题无聊归无聊,我可不想把对解决方案的理解完全甩给机器。

当然,我可以逐行检查大语言模型(LLM)生成的每一行代码。这也是2026年这个"魔幻"年份里,大多数开发者的常规操作:机器人提交PR,人类负责审核。还真是个光怪陆离的新世界。

但我实在讨厌审核AI生成的PR。盯着几百行防御过度、注释潦草、还藏着细微bug的代码,一点意思都没有。给老板干活的话,我可能会不情不愿地做,但心里肯定巴不得赶紧跳槽——至于我自己的个人项目?绝对不可能。个人项目最重要的就是乐趣,它的魅力在于过程而非结果

那我该怎么办?怎么才能把枯燥的活儿丢给LLM,又不用把对工作的掌控权和自己的认知拱手交给这个"代码搅拌机"?

我想出了一个既低效又有点滑稽的办法:让编程助手在聊天框里生成代码,然后我手动把所有改动敲进项目里。

我在个人项目的所有代理文件里都写了这样的指令:

我要理解项目里的每一行代码。除非我明确要求,否则绝对不要创建、编辑、移动、重命名或删除项目文件。所有修改建议都请在聊天框里展示,由我手动输入。

除非我明确要求,否则不要运行任何会修改项目文件、安装依赖或改变仓库状态的命令。相关命令请在聊天框里展示,由我手动执行。

我是经验丰富的开发者。除非我明确提问,否则无需解释语法、API、编程概念或实现细节。

这么用LLM,速度比完全不用它要快,但肯定比不上那些直接让机器替自己思考的人。别人能提速10倍,我大概只能快2倍。但我在速度上损失的,都在对代码的深度理解上补回来了。

当我把LLM生成的每一行代码手动敲进编辑器时,我会在脑子里构建出它的运行逻辑,以及它和现有代码库的适配方式。要是遇到不懂的API或算法,我可以停下来查资料,或者直接让LLM给我解释。

手动敲代码逼着我慢下来,这样我更有可能发现LLM生成内容里的幻觉错误或糟糕设计。我可以边敲边优化代码:调整结构、重构逻辑、添加注释,把它改成我喜欢的样子。

最重要的是,这种工作流程能让我在脑子里形成一份代码库的"空间地图"。我清楚每一项功能在代码库的哪个位置,需要修改时能精准定位。这不仅能让我在项目里干活更顺手,以后给LLM提需求时也能更精准清晰。

我十几岁学编程的时候,资深程序员总告诉我,绝对不要直接复制粘贴代码到项目里。跟着书学的时候,他们让我把所有示例手动敲进电脑,确保能运行;看博客或论坛答案时,他们也让我手动输入并适配自己的代码库,直到完全理解为止。

把LLM生成的代码手动敲进项目,感觉和当年的学习过程一模一样。这可能不是用LLM最高效的方式,但对我来说,理解透彻比单纯追求效率重要得多。我已经这么做了几个月,效果很不错,打算一直用下去。

我担心整个软件行业正在积累大量认知负债,而且很快就要面临偿还的时刻。总有一天,我们会搞不懂自己搭建的大部分数字基础设施到底是怎么运作的。我个人可能改变不了整个行业的走向,但至少能确保自己完全理解我产出的每一款软件。不然,就是职业失责。