那是上周日,我在开发新页面的时候,突然认定屏幕上一片死白,仿佛整个世界都被某种看不见的油污给涂抹了一遍。打字的时候手都在抖,字体大小全变了,颜色都跑调了。
那一刻,我就像个被抛锚的司机,只想找个地方喘口气。 后来我才明白,这根本不是 Bug,这是我在和 AI 进行一场关于“完美代码”的持久博弈。 刚启动接触大模型辅助编程时,我的心态特别天真。总认定把思维外包给它,自己就能够当个懒散的开发者,边喝冰美式边享受成果。我当作只要给它一点灵感,它就能像写诗一样,瞬间生成一段逻辑严丝合缝、注释丰富到令人发指的顶级代码。 现实却给了我一记响亮的耳光。 我输入了一段好办的数学循环,期待它能自动优化。 ```javascript function sum(n) { let total = 0; for(let i=1; i<=n; i++) { total += i; } return total; } ``` AI 回应的速度简直快得离谱。它优化了变量命名,改进了注释结构,就连把 `for` 循环的重构成了 `reduce`。
看起来行云流水,像是那个传说中的完美程序员随手一挥。 我满怀期待地复制粘贴回去,结局发现逻辑少了点。仔细一比对,发现这段代码在处理某个边界情况时,效率下降了 14%,而 AI 居然还在我看不到的地方加了个未声明的变量,害得编译警告。 那一刻我突然意识到,AI 压根儿都不是我的智能体,它只是一个拿着天书给我翻译、又拿着天书给我讲道理的数据搬运工。它懂语法,但它不懂业务;它见过无数种写法,但它没有我活过的百味人生。当它说“这里能够优化”时,它并不知道这条优化路径是否确实能提升用户体验,要么会不会让后来的同事更困惑。 便,我不得不重新拿起键盘,试图用那点残存的直觉去修补它的杰作。我把那段它生成的代码拆解,重新审视每一个决策点。 原来,代码的魅力不在于它有多漂亮,而在于它能解决实际难题。 我在 `sum` 函数后面加了一段自定义的边界检查: ```javascript if (n < 0) throw new Error("n 不能为负数"); ``` 这段代码朴实无华,没有任何花哨的修饰,就连没有遵循 AI 推荐的最佳实践。但正是这种“不完美”,让我重新找回了写代码的乐趣。
那一刻,屏幕上的代码不再是任人摆弄的玩具,而是一张张白纸,是我亲手描绘的。 我还记得有一次调试数据库连接,出于顺序号不对害得代码报错。AI 居然能一眼看出那个重复的变量名,并改成了唯一的标识符。它确实能看懂架构,能理解数据流向。我惊出一身冷汗,又忍不住想赞美它。 这种想赞美又提不起劲的感觉,大约就是我们和 AI 之间永恒的矛盾。 有时候,AI 给出的方案别看看起来高深莫测,逻辑闭环完美,但就是少了那种“人味儿”。它没有来气,没有犹豫,更没有出于写错了代码而羞于启齿的尴尬。它只在乎结局,不在乎过程是否真形成过。 这让我想起了那会儿写小说。 那时候我写“心理描写”,会特意模仿大仲马那种华丽繁复的句式,用“他在心中掀起层层波浪……"这种词藻堆砌。但我后来发现,真的心理活动往往都是琐碎的、破碎的,充满了那些人类特有的停顿、犹豫和生理反应。 目前的 AI 让我启动质疑,是不是我们确实在偷懒?
是不是为了追求那种“算法级”的对性,而丢掉了代码最核心的灵魂——那就是解决具体难题的人性。 我也试着给 AI 下达过一个怪的指令。 “请帮我写一个后台管理系统,要求界面要像老旧的 Windows 98 一样,颜色务必鲜艳,背景要有动态的粒子效果。” 它立马启动在我的屏幕上生成一套参数混乱、布局错乱的界面。 我意识到,要是我非要模仿旧时代的审美,那确实是我审美有难题。 故此我换了个方案。 “请帮我写一个后台管理系统,参考 Vue 3 和 Element Plus 的规范,深色模式,配色要护眼,功能模块要整个,并且要能解决大局部后台管理常见痛点。” 这次,它竟然给出了一个既现代又实用的方案。 我不再苛求它模仿某种风格,而是关切它是否能真正帮到我。
哪怕它给出的代码平凡,哪怕它间或犯点小错,只要方向是对的,我就愿意让它帮我跑一跑。 在后续的协作中,我发现了一个有趣的现象:当我们在群里聊聊需求,要么在深夜加班时,人类的情绪、直觉和突发奇想,往往是 AI 这匹“智慧马”最无法匹敌的短板。 有时候,人类干一样的活,AI 能做出 100 个版本;人类做出 90 个版本,AI 只能做出 4 个。 这就是人类的价值。
不是出于我智慧,而是出于我能在混乱中保持冷静,在不清楚中做出判断。 上周三,我接手了一个老旧的遗留系统。
那个系统当时已经没人维护了,文档丢失大半,接口定义更是混乱得像一团浆糊。我心里实际上挺慌的。 正常人的反应可能是直接报错给开发人员,要么尝试让 AI 修复。 我当时深吸了一口气,没有调用那个宏大的 API,而是打开文档,逐行阅读,圈出了所有断点和异常。 当 AI 被要求重构这段遗留代码时,它并没有盲目地重写所有内容。它起初识别出了几个关键的业务逻辑块,然后强行将它们“缝合”在一起。结局,别看代码跑通了,但逻辑上确实存有漏洞。 我站在代码旁,看着屏幕,突然认定松了一口气。 出于我知道,难题的根源不在代码本身,而在业务逻辑的变更上。AI 不懂业务,它只会理解代码的语法结构。
要是业务逻辑本身是错的,给它最好的代码,它也只能吐出毛病满满的垃圾。 那一刻,我不再认定是在和 AI 做比赛。 我们是在做减法。 人类的工作,大量时候不是制造更完美的代码,而是清洗更脏的数据,还原更清楚的逻辑。AI 能做的是填补空白,供给灵感;我不能做的是对业务负责,对结局负责。 目前的我,启动尝试一种新的工作方式。 不再期待 AI 能替我写出完美的代码,而是把它当作一个超级助理,一个高效的写手。它负责把我的想法变成结构化的文档,把冗长的描述提炼成简洁的代码片段。而我负责提出那个“不完美但可行”的方案,负责在代码运行起来之后,去验证它是否确实解决了难题。 间或我会偷懒,让它写个需求文档,要么写个单元测试用例。它写得挺快,逻辑也挺清楚。我接着它的思路,把它变成具体的任务列表,然后一个个执行。 在这个过程中,我发现自己越来越享受这种“狼狈”的感觉。 不是代码没写出来,而是我务必在代码里重新思索。
这种反复的震荡,反而让我思维更活跃,对业务的理解更深刻。 要是有一天,AI 确实能写出我中意的代码,那我会感谢它;要是有一天,AI 确实写不出我中意的代码,那我也应当坦然接纳。出于真正的进步,不是让机器学会模仿人类,而是让我学会驾驭机器,在它的辅助下,更好地搞定人类的工作。 我们都在学习如何更好地“做人”。 在 AI 时代,不要恐惧犯错,也不要急于求成。有些难题,AI 帮不了,人也帮不了,只能靠我们自己一点点试错、一点点感悟。 代码不再是冰冷的字符,而是我们思索的载体。
只要我们在里面留下一点人性的温度,哪怕只是一个注释,一点曾让人热泪盈眶的代码片段,那这段代码就一辈子值得我们自豪。 那个曾经让我崩溃的 Bug,目前成了我记忆中最深刻的教训。它让我明白,在这个高效的时代,或许我们需求的,不是更智能的工具,而是更清醒的头脑。 持续写吧,哪怕只是写下一行好办的注释。


相关标签: