“藏在生活缝隙里的bug”中的“bug”,最初指程序漏洞、故障,放到生活语境里,是指日常里那些打破预期、细碎又有点恼人的小意外、小纰漏,它不是什么严重的大麻烦,却总悄悄冒出来打乱节奏:比如赶时间时鞋带总散、刚整理好的桌面被碰乱、扫码付款时手机突然卡顿、存好的文件莫名丢失,这些藏在生活缝隙里的小bug,虽让人瞬间无奈,却也构成了生活真实的烟火气,偶尔还藏着意料之外的小趣味。
上周三加班到深夜,我对着电脑屏幕上跳出来的红色报错框发呆——写了三天的活动代码,临上线前查出个隐蔽的bug:用户只要在输入框里连续敲三个表情,整个提交按钮就会彻底卡死,我揉着发胀的太阳穴翻了二十多页日志,最后发现问题出在最开头三行我随手写的正则表达式里,当时只想着快些写完去喝楼下的冰美式,连边缘场景都没测。
那瞬间我突然觉得,“bug”哪里是程序员的专属啊,我们每个人的生活里,明明都藏着数不清的、没被修复的小bug。

我妈用了三年的智能手机有个专属bug:只要她连着家里的WiFi打视频电话,超过十五分钟必然会自动挂断,我帮她刷过系统、换过路由器,甚至拉着运营商的师傅上门测过网速,始终没找到问题出在哪,后来我周末回家陪她坐着,才发现她每次打视频到十五分钟左右,就会下意识走到阳台去给她养的绿萝浇水,手总不经意蹭到手机右上角的挂断键——她总怕坐久了腰不舒服,却从来没把这个动作和“电话挂断”联系到一起,每次挂了都要对着屏幕念叨两句“这破手机又出bug了”,我没拆穿她,后来每次视频到十四分钟的时候,我就主动说“妈你去给花浇水吧,我这边刚好要去倒杯水”,她总在屏幕那头乐呵呵地应着,说“你看今天这bug怎么还没来”。
朋友阿凯去年备考研究生的时候,也遇到过个无解的bug:他每天雷打不动早上七点坐到图书馆三楼靠窗的位置,只要翻开那本厚得能砸核桃的《数学复习全书》,坐不到二十分钟必然会开始犯困,喝三杯黑咖啡都顶不住,换位置、换书、站着背书都试过,半点用都没有,他一度觉得是自己天生不是读书的料,临考试前一个月才偶然发现,那个位置头顶的空调出风口正对着他的后颈,冷风一吹人就容易昏昏沉沉,后来他换了个离空调远的位置,最后数学考了132分,收到录取通知书那天他在群里发红包,笑称自己“花了八个月,终于修复了人生里最耽误事的一个bug”。
我以前总觉得,bug是必须立刻揪出来消灭的东西,是系统里的漏洞,是计划外的差错,是完美生活里扎眼的瑕疵,就像刚工作的时候,我每次遇到线上bug都会急得满头汗,总觉得是自己能力不够,要熬夜把所有问题都抹平,连一点小差错都不能有,可慢慢我才发现,那些没被立刻修复的bug,有时候反而会变成生活里最有意思的注脚。
我常去的那家巷口面馆,收银系统有个存在了两年的bug:只要点单的时候同时加煎蛋和素鸡,结账时就会自动少算一块钱,老板早就发现了这问题,却从来没找技术员来修,每次遇到熟客点这两样,他都会笑着递上一头蒜,说“今天又赶上系统给你发优惠啦”,去年冬天我加班到十点去吃面,那天刚好赶上年终项目出了大问题,我坐在位置上没忍住掉眼泪,老板端面过来的时候额外加了个卤蛋,说“你看这系统今天bug犯大了,多给你算个蛋,吃点热的,啥bug都能过去”。
前阵子我翻自己大学时的旧手机,发现当年用的社交软件有个bug:给喜欢的人发消息,只要刚好在凌晨零点零分发送,消息后面就不会显示“已读”标记,那时候我总借着这个bug,在很多个睡不着的夜晚给他发一些没头没脑的话:“今天食堂的糖醋排骨太甜了”“楼下的猫又抢了我的火腿肠”“马上要考六级了我单词还没背完”,反正不会显示已读,就算他没看见也不算尴尬,直到毕业聚餐那天他喝多了,举着杯子跟我说:“你那时候凌晨发的消息我都看见了,就是那个破软件不显示已读,我总怕回了你,你就知道我每天也熬到零点等你发消息了。”
你看啊,这世上从来没有全无bug的系统,就像从来没有全无破绽的生活,那些程序里的bug要一行行查日志、改代码才能修好,可生活里的bug从来不需要我们急着立刻消灭:它可能是妈妈蹭到挂断键的指尖,是吹得人犯困的空调风,是面馆里少算一块钱的优惠,是年少时借着系统漏洞说出口的小心思,我们总在追着“完美”跑,怕计划出偏差,怕生活出纰漏,怕那些没按剧本走的瞬间打乱所有节奏,可往往是这些藏在缝隙里的小bug,让那些原本按部就班的日子,突然就多了点软乎乎的烟火气,多了点没预料到的浪漫。
昨天晚上我改完那版卡表情的代码,临提交前特意留了个小彩蛋:如果用户连续敲三个星星表情,提交按钮就会变成浅橘色,点一下会弹出来一行小字“今天也要开心呀”,同事看到了笑我,说你这哪是修bug,你这是故意给系统加新bug,我笑着没说话,反正啊,日子还长,我们谁不是带着一堆没修好的小bug,慢慢往前走呢?说不定哪个没留神,那些曾经让你头疼的小漏洞,最后就变成了生活偷偷塞给你的糖。