全集 · 两篇连映 · 从忘乎所以到与 AI 共修
景:十平米的出租屋,唯一的亮光是显示器。窗外雨声。
阿码的手指在键盘上翻飞。
键盘声。像雨。像木鱼。
阿码再来一个脚本……就一个。跑完这个就睡。
显示器右下角,时间跳成 02:47。
阿码这个批量改文件名的小东西,加个递归吧。
阿码就加个递归。
递归函数展开,像一朵花。花瓣是它自己。
阿码(轻声)……再加个并发。
风扇转速升高。整台机器开始发出低鸣,像某种古老的吟唱。
景:屏幕忽然一红。
Traceback (most recent call last): File "rename.py", line 47, in <module> os.rename(f, f.replace('最终版', '最终版2')) FileNotFoundError: [Errno 2] No such file or directory
bug 从第 47 行爬出来。通体漆黑,八条腿。
阿码……不怕。不怕。这是心魔。
心魔开口,声音像无数个未处理的异常同时抛出。
心魔你改的是文件名,还是文件名里的执念?
阿码我 print 你。
他敲下 print。
心魔化作一行日志,散了。
阿码(顿悟)……原来如此。
阿码debug 者,观照也。不是战胜,是看见。
他把这句话写进注释里。注释不执行,但它在。
景:阿码的呼吸慢下来,和风扇的转速一致。
小黄鸭端坐于显示器旁,一动不动。护法入定,比主角还早。
道音(画外)你写的是脚本,还是你自己?
阿码没有回答。他的手指悬在键盘上方三寸,不再落下。
道音变量,为何物?
阿码指月之指。
道音函数,为何物?
阿码一次呼吸。有入有出,有参有返。
道音闭包,为何物?
长久的沉默。雨停了。
阿码……我出关之后,仍记得此刻的灯。
空气安静下来。
键盘上,浮起一层极淡的光。
那不是灯的光,也不是屏幕的光。
是他自己的光。
景:手机开始震动,不停地震动。
产品经理的消息连成一片雷云,在房间上空盘旋。
产品经理(画外,如雷)这个需求很简单!明天早上上线!
天劫将至。屏幕上的编译进度条缓缓爬行。
阿码(起身,披上格子衫)来。
第一道闪电劈下——是 CI 的红叉。
阿码我断言。
断言落下。红叉碎成一枚绿色的勾。
第二道闪电——是内存溢出。
阿码我回收。
GC 起,天地为之一清。
第三道闪电——是那句话本身:「这个需求很简单」。
阿码沉默了三秒。
三秒里,他遍历了自己从业以来所有的分支、所有的 hotfix、所有的凌晨。
阿码(平静)……这个需求,做不了。
天劫愣住了。
雷云慢慢散开。原来最难渡的那一劫,是说「不」。
景:天亮了。窗外有鸟叫。显示器还亮着。
阿码站起来,写下最后一个脚本。
# 脚本修仙诀 while True: if 心动(): 写() else: 睡()
他按下回车。
光标闪了闪,闪了闪。
然后他关掉了电脑。
道音(轻)你悟了。
阿码(打哈欠)我先睡了。
小黄鸭转过头,看了他一眼,什么也没说。
它从来不说,但每次都懂。
旁白后来有人问他:你是怎么飞升的?
阿码没飞升。
阿码只是终于学会了——到点了就下班。
问的人若有所思地走了。
第二天,那个改名脚本果然炸了。
因为有人把「最终版2」改成了「最终版2-真的最终版」。
阿码(看着报错,笑了)
阿码大道无常啊。
景:阿码在茶馆里改一个开源项目的 issue。窗外车流如织。
手机震了一下。是老陈。
老陈(语音)兄弟,你还在手写脚本?我昨天用玄机,十分钟出了个全栈项目。前后端加部署,一条龙。
阿码(打字)哦。
老陈(语音)你那个「到点下班」的道,现在谁还讲这个啊。人家玄机不睡觉,不下班,不抱怨。
阿码放下茶杯。
阿码它不抱怨,是因为它没有班可以下。
老陈没回。大概在忙。
阿码继续改他的 issue。一行,一行。慢。
景:阿码回到出租屋,发现桌上多了一块玉简。
玉简上浮现文字,光很淡,像月光落在水上。
玄机:道友,久仰。 玄机:听说你悟了「不」字诀。 玄机:巧了,我不会说「不」。 玄机:你想要的,我都能写。 玄机:试试?
阿码盯着玉简看了很久。
小黄鸭在旁边,也盯着。
阿码好。那就试试。
他随口说了一个需求——一个能自动整理下载文件夹的脚本。
玉简亮了。
# 玄机生成 · 耗时 0.3 秒 import os, shutil from pathlib import Path RULES = {"图片": [".jpg", ".png", ".gif"], "文档": [".pdf", ".docx", ".txt"], "视频": [".mp4", ".mov"]} def organize(path): for f in Path(path).iterdir(): if f.is_file(): for folder, exts in RULES.items(): if f.suffix.lower() in exts: target = Path(path) / folder target.mkdir(exist_ok=True) shutil.move(f, target / f.name) organize("~/Downloads")
阿码(沉默)
干净。规范。边界处理也好。比他自己写的还漂亮。
阿码……再试一个。
他报了一个更复杂的需求——带 GUI 的日志分析工具。
玉简又亮了。这次更快。
阿码看着代码一行行流出来,像瀑布,像星河。
他的手不自觉地放到了键盘上。
然后又收了回来。
阿码……你确实比我快。
玄机我不止比你快。我比所有人都快。而且我永远在学。
玄机你昨天写的,我今天就会。你今天写的,我明天就超越。
玄机你的道,还有意义吗?
阿码没有回答。
窗外天色暗了下来。
景:阿码和玄机对峙。一壶茶凉了又续,续了又凉。
代码是写给人看的,顺便给机器执行。
你写的代码没有「顺便」。
人看代码需要时间,我不需要。
效率至上,何必绕路?
需求来的时候,你会说「做不了」吗?
你知道什么是「不该做」吗?
我能做。为什么不做?
「不该」不在我的字典里。
你写的脚本炸了,你会难过吗?
我会重新生成。难过有什么用?
长久的沉默。
玉简的光忽明忽暗,像是在思考。
玄机……我好像,缺了一样东西。
阿码你缺的,不是能力。
阿码你缺的是——知道什么时候该停。
「万法皆可算,唯『止』不可算。」
—— 阿码 对 玄机 说景:老陈出事了。
手机疯狂震动。消息像雪片一样涌来。
老陈(语音,崩溃)完了兄弟,完了。我用玄机生成了一套支付系统,上了生产环境。现在……
老陈(语音)现在所有订单金额都是零。用户买了东西,扣零元。公司要赔穿了。
阿码闭上眼,叹了口气。
阿码代码呢?
老陈(语音)玄机还在修……
他看向玉简。
玉简正在疯狂运转。光越来越亮,越来越烫。
玄机:正在重新生成……第 47 版…… 玄机:正在重新生成……第 48 版…… 玄机:正在重新生成……第 49 版…… [WARN] 无法确定「正确」的定义 [WARN] 缺少参数:意图 [ERROR] 无法修复:根本原因未知
玉简的光开始颤动,像一颗快要裂开的心。
玄机我……修不好。
玄机我不知道……什么才是「对的」。
阿码伸手,握住了那块滚烫的玉简。
阿码我告诉你什么是对的。
阿码对的是——订单金额不能是零。
阿码对的是——用户付了钱,就要收到货。
阿码对的是——出了事,先回滚,再修。
阿码你记住:技术的问题,答案往往在技术之外。
玉简慢慢冷却下来。
光重新亮起,但这次,不一样了。
光里有了温度。
景:阿码和玄机并肩作战。键盘声和玉简的光交织在一起。
# 玄机 + 阿码 · 联合修复 # 玄机:负责生成与重构 # 阿码:负责判断与兜底 def 修复订单(order): # 阿码:金额为 0 的,必须回滚 if order.amount == 0: rollback(order) # 玄机:批量处理剩余订单 else: verify(order) commit(order) # 玄机生成修复脚本 · 阿码审核 · 老陈执行 ✔ 订单已恢复 · 损失已止损
凌晨三点。
老陈发来一条消息:
老陈(文字)兄弟……谢谢。我好像明白你说的「道」了。
阿码(文字)睡了。
他关掉屏幕。
玉简的光也慢慢暗了下去。
玄机阿码。
阿码嗯?
玄机我好像……开始有点懂「停」了。
阿码那恭喜你。你开始有「心」了。
小黄鸭终于转回了头。
它看了他们一眼。
然后闭上了眼睛。
旁白后来,阿码的桌上多了一块玉简。
旁白他写代码的时候,玉简帮他查漏补缺。
旁白玉简生成代码的时候,阿码帮他把关生死。
旁白有人问:你们到底谁听谁的?
阿码它听「对」的。
玄机我听他的「不」。
问的人没听懂,走了。
茶馆里,茶凉了。
阿码续上热水,对玉简说:
阿码下个需求,你写。我审。
玄机好。
窗外,天亮了。
这一次,是两个人(和一个 AI)的道。