第 2 章
西星桥下第七个桥洞
ovo · 2026/8/21
接下来五天,陈序活得像个即将越狱的犯人,只不过监狱是他自己的工位。
他每天准时打卡,点“通过”点得比以往更勤快。紫色渐变在他眼前流淌成河,毛玻璃卡片像一群水母在屏幕上漂浮,他连眼皮都不抬一下。林锐说:“陈哥你最近是不是中了邪,通过率百分之百,业绩冲刺呢?”陈序点点头,表情虔诚得像一个刚刚皈依了某种“紫色神教”的信徒。
但他脑子里只有一个念头——下周三晚上,西星桥下第七个桥洞。
这个地名在他的记忆里极其模糊。西星桥在城东老工业区边上,是一条横跨灌渠的旧公路桥,早就没什么车走了。陈序上辈子当切图仔的时候,去那边的一家印刷厂对过色,只记得桥下长满芦苇,夏天蚊子多得能把人抬走。现在已经是2030年的秋天,蚊子大概少一些,但桥洞里的风,想想都冷。
他更在意的是短信里那句“你以前写C的人”。哪一个C?C语言?CSS?还是说那个人姓陈?陈序把自己上辈子认识的、还在写代码的朋友在脑子里过了一遍,发现一个悲哀的事实——他上辈子就没有什么还在写代码的朋友。大家要么转行卖保险,要么考公上岸,要么在朋友圈转发《震惊!AI 将取代这十大职业,你的岗位正在消失》。最铁的兄弟老周,2028年转行做宠物殡葬,现在朋友圈全是悼念小仓鼠的文案。
那第七个桥洞底下,能有什么正常人?
但短信里那句“眼前的世界全是紫色渐变”,像一根鱼钩扎在他喉咙里。他确实看见了。他能看见。这双眼睛在这具二十八岁的身体里,已经憋了太久。
周三下午,陈序提前十分钟下了班。工区里的灯管在头顶嗡嗡作响,同事们的屏幕上清一色散发着熟悉的紫光,像无数台仪器在朝拜同一个神。他经过林锐身边,对方正对着一个“社交 App 首页”犯难:“陈哥,你看这个页面,又是紫色,但这次带一抹青色,你说这算不算创新?”陈序拍拍他肩膀,沉声说:“算。这叫科技青,明年流行色。你点通过吧。”
他走出旋转门时,晚风迎面吹来,带着深秋的寒意。西装外套太薄,但他没回头。他在地铁口站了半分钟,最终选择步行。他不确定自己身后有没有尾巴,步行途中多拐几个弯,总能甩掉一些不必要的注意力。
西星桥比记忆里更破旧。桥栏杆上的涂鸦还在,“本地交友”“办证刻章”的模糊字迹上,叠着一层新的喷漆,写着——“提示词,是新时代的咒语”。旁边有人用油漆刷了一句回击:“代码,是旧时代的骸骨。”两句对峙,像两个时代的对喷。陈序从它们之间穿过,顺着一条被人踩出来的土路下到了桥墩旁边。
第七个桥洞。
天已经半黑,桥洞里比外面更暗。陈序眯起眼睛,看见桥洞深处有一点微弱的红光,忽明忽暗,像一支烟头。他停在桥洞外三步远的地方,没再往前。风从桥下穿过,冷得人后槽牙发酸。
“来都来了,别站着。”里面传出一个沙哑的声音。
陈序没动:“你谁?”
“你先进来,外面有无人机巡逻。”
陈序抬头看看天,确实有几架灵元集团的小型巡检无人机在远处飞。他吸了口气,弯腰钻进桥洞。
红光是一支真烟。持烟的人靠着桥墩,穿着一件鼓鼓囊囊的旧羽绒服,领口磨得发亮。他大约三十出头,下巴上冒着青茬,眼镜片上一道斜斜的裂纹。更引人注目的是他手边放着一样东西——一本破旧的书,封面被撕掉了一半,露出一个模糊的图案。陈序盯着看了两秒,心脏猛地一缩。
那是前世的他再熟悉不过的东西:一本《JavaScript 高级程序设计》。
“别紧张。”那人把烟灭掉,在地上碾了碾,“我叫赵远。以前做嵌入式,后来转 C。不是 C 语言的 C,是 CSS 的 C。你懂我意思。”
陈序没接话。他站在桥洞边缘,背后的风像一只冰手按在他脖子上。
赵远看了他两秒,突然笑了:“你果然看得懂。刚才你眼睛在那个 12 像素热区上的反应,跟我们观察到的完全一致。”
“你们到底是谁?”
“我们是一群麻烦。”赵远从羽绒服内袋里掏出一个旧手机,屏幕碎了半张,还能亮。他按了几下,递给陈序。
屏幕上是一段录制画面。一个界面上,某按钮的热区被高亮显示,旁边的注释写着:“陈序,工号78431,瞳孔缩放异常,疑似 CSS 反射触发。”下面跟着一条批注:“可接触。”
陈序的喉咙发紧。他就知道。他就知道那个鬼摄像头在盯着他。他每天坐进工位关掉辅助摄像头,从来没想过系统可能通过主摄像头、甚至屏幕内嵌的感应器来观察他。他的“看见”根本不是秘密。
“你们在灵元当卧底?”
“卧底?”赵远哈哈大笑,笑得咳嗽起来,“你这词儿用得跟拍电影似的。我们只是几个还没死透的人。在灵元里面,有好些岗位能看见我们这些人——验收员、测试员、运维、甚至几个低级提示词师。这系统有纰漏,你以为自己藏得很好,其实我们就是靠这个在找人。”
“找我干什么?”
赵远的神情认真起来。他把那本破皮书收进怀里,像收一件文物。
“陈序,你脑袋里那套 CSS,是自己长出来的,还是从某个梦境里‘想起来’的?”
陈序沉默了几秒。风从他们之间穿过,把桥洞口的枯叶卷起来,擦着地面发出沙沙的响。
“有什么分别?”他问。
“分别大了。”赵远往前倾了倾身子,裂纹眼镜后面的眼睛亮得吓人,“如果你是自己长出来的,那你就是个天才,我们捡到宝了。如果你是‘想起来’的——那说明你是灵元系统的一个漏洞。一个带着旧时代记忆的残渣。那你对我们来说,更值钱。”
陈序的心跳在胸腔里擂鼓。他上辈子写了十五年 CSS,死过一次,重生在这个鬼地方,现在有人告诉他,他是一个“带着旧时代记忆的残渣”。这句话难听,但竟然是他听过的最接近真相的描述。
“你们要我做什么?”
赵远站了起来,拍拍裤子上的灰。他个子不高,但站直了有种沉甸甸的稳当劲儿。他走到桥洞最里面,蹲下去,在水泥地面上敲了敲。一声空洞的响。他扒开一堆烂树叶和碎砖,露出一个锈迹斑斑的铁盒子,像电影里藏军火的旧装备箱。
陈序的心脏提到了嗓子眼。结果盒子一打开,里面整整齐齐码着三排——U盘。不是那种花哨的水晶U盘,而是十六个被贴了标签的旧式U盘,标签上写着:Reset.css、Flexbox 布局手册、Grid 布局实战、Canvas 粒子系统文档、闭包与作用域……每个标签都是手写的小楷,像一群亡灵的牌位。
“给你看个东西。”赵远挑出一个,插进那个破手机底下自带的转接头里。屏幕上跳出一个视频文件。他点开,画面摇晃,画质感人,是一段手机录的电脑屏幕。
屏幕上在播放一段代码。一行一行手写的 CSS,有人在键盘上敲得飞快。代码质感低级,命名惨不忍睹——.box1、.content2、#main3——但在今天的陈序眼里,那排丑陋的命名像是从古代废墟里挖出来的碑文。屏幕右下角的时间戳显示:2022 年 11 月 3 日凌晨 2 点 47 分。
“这是谁?”陈序的声音有些沙。
“一个码农,以前在某个小外包公司。这段代码是他在改一个活动页面的 bug。这个视频是我从回收站里恢复出来的。”赵远看着他的眼睛,“这视频里的人,你看清楚。是不是你?”
陈序盯着画面里那双敲键盘的手。指甲剪得很短,左手虎口有一颗淡褐色的小痣。他的左手虎口,也有一颗淡褐色的小痣。他猛地攥紧了拳头。
“这个视频……”他艰难地开口,“你们从哪来的?”
“灵元集团的旧数据湖。他们当年训练 AI 前端助手的时候,收购了好几个代码托管平台,把人们以前写的仓库和屏幕记录全部吃进去当训练数据。”赵远的声音压得很低,“他们喂给了 AI,然后对外宣布:旧时代的前端已经可以被完全模拟。可他们没想到,那些代码里藏着人。”
陈序的脑子嗡了一下。他突然理解了赵远所说的“残渣”是什么意思。灵元不是把旧时代封存了,它是把旧时代吃进肚子里了。那些代码、那些书写习惯、那些敲键盘的节奏、那些深夜改 bug 时的诅咒,统统被扔进庞大的训练数据里,消化成今天这满屏紫色渐变。
而他,陈序,或许是所有“残渣”里最顽固的那一粒。他重生了,带着整套肌肉记忆,就像一份被 AI 排异却未能删除的旧文件。
“所以你们想干什么?把 U 盘插进公司电脑里,释放旧代码的幽灵?”陈序竟然笑了一声,带着点自嘲,“那我还不如直接去考个提示词证书。”
赵远没有笑。
“陈序,你以为这个世界的紫色渐变是偶然的吗?”他蹲下来,手指在铁盒上轻轻敲了敲,节奏像键盘的某个和弦,“灵元前端助手 3.0 在训练时,用了一套‘审美对齐’算法。它把人类认为‘好看’的界面元素提取成特征向量,然后用这些向量去约束生成结果。紫色渐变、毛玻璃、居中大标题,是评分最高的特征组合。可为什么偏偏是紫色?”
陈序心里隐隐有答案,但他没说出来。
“因为训练数据里,有一段时间,人们最喜欢一套叫‘科技感 UI 模板’的东西。紫色渐变在那里面占比极高。但那不是最好看的,那是被一群包工头式设计师用同一个模板批量生产出来的。它赢就赢在量大连贯。”赵远的声音平得像念数据库日志,“灵元用那堆数据训练出了它的品味。换句话说,今天满大街的紫色渐变,是一群转行前的培训班学生的集体意志。”
陈序沉默了很久。桥洞外,夜风呜咽着穿过生锈的桥栏,发出类似风筝断线的声响。
“所以你把我叫来,”他慢慢地说,“是为了让我看一眼你的 U 盘收藏,然后跟我上历史课?”
“我叫你来,是因为你该知道这个世界的界面为什么烂成这样。”赵远站起来,拍了拍手,指向洞外远处那一片被霓虹灯染成紫红的天际线,“然后你再决定,要不要跟我们干一件疯狂的事。”
“你们要做什么?”
“下个月,‘灵元全球提示词峰会’会发布新版本 4.0。几百万个界面会在一夜之间被重新生成。”赵远盯着陈序,语气轻描淡写,“我们要在发布前,把一段代码塞进它的生成管线上。一段手写的 CSS。不用多,十八行就够。”
“给所有紫色渐变,加一道模糊三十像素的边框,再加一行注释。”
陈序张了张嘴,几乎以为自己听错了:“就这?”
“就这。”赵远笑了,嘴角弯起来的时候眼镜片在夜色里反出一线寒光,“但注释里写句话:‘这一切本不该由我们来做。’”
陈序盯着他,风从两人之间卷过。这疯狂的计划,简单得像个恶作剧,又荒唐得像个时代的墓志铭。
“所以,写 CSS 的人,你入不入伙?”