晚上十一点半。屏幕的冷光直往眼里扎,手边那杯水凉透了,抿一口,全是涩味。工作群冷不丁弹出来一条:“线上有个小问题,麻烦看一下。”盯着这行字,我脑子里突然就蹦出《软件工程学教程》里的一章。说真的,那书我翻得挺糙,代码没记住几行,架构也一知半解,就死磕着一句话看了半天:软件活多久,开发就占一小截,剩下的全砸在往后维护上。意思大概就这么点。代码写得再漂亮,上线,也就是个开始。

刚看那会儿,我还真犯嘀咕。创造俩字多带劲啊,怎么真金白银和力气,最后全搭在修补上?后来慢慢熬进职场,背上房贷,才咂摸出点味儿来。这话压根不是在说代码。它照的就是咱们普通人的日子。二十来岁的时候,谁没觉得人生能一键上线?总拿自己当张白纸,觉得需求列得够细,方向选对,门进得正,就能跑通个完美版本。可真踩进生活这摊浑水才明白。点下“发布”键那会儿,戏才刚开场。往后几十年,全在填坑。早年熬夜、瞎吃、乱焦虑攒下的一堆老毛病?全得当“技术债”扛着。物价在涨,圈子在变,身体机能往下掉,这叫“运行环境”迭代。至于半夜突然砸下来的“异常报错”,躲是没用的,只能接。我觉得吧,生活这玩意儿,根本不存在什么“完美版本”。只有“勉强能跑”和“彻底崩盘”。硬要追求一步到位,多半是给自己上刑。

就拿上个月来说。我非要调作息。排了张密密麻麻的表,信誓旦旦要把生活“重构”一遍。结果呢?没撑过两周。一波赶项目,全给搅黄了。那天拖着身子回家,桌上摊着PPT,微信里几十条未读,连挣扎的劲儿都没了。往沙发上一瘫我才明白,有些漏洞,压根不是当初没写好。是这系统本身就在长个儿,在变重。你摁住一个bug,旁边准又冒出新茬子。软件工程管这叫“回归测试”。落到咱打工人身上,说白了,就是认怂。可能人到了这个岁数,能稳住不崩盘,就算赢麻了。

以前我老焦虑。总觉得哪儿没弄利索,就得推倒重来。瞅见别人晒个光鲜的“新版本”,心里就发毛,琢磨自己这“旧系统”是不是该进废品站了。可书里早把底牌亮明了。能一直活着的系统,靠的从来不是一锤子买卖的完美上线。是死磕一次次稳定的迭代。带病运行行不行?行。报错后重新加载行不行?行。边修边调,没毛病。听着是挺糙,甚至有点摆烂的意思,但心里踏实。别把“迭代”想得太高大上,它其实就是缝缝补补又三年。别总指望一劳永逸。

讲真,现在我也不爱拿剪刀去“优化”日子了。那词儿总透着股改造人的劲儿,好像生活非得修剪成那种毫无生气的样板间,才叫合格。可人又不是流水线上的标准件。情绪会起落。精力会掉线。跟老朋友的关系会生疏。这些压根不是bug,是出厂自带的配置。你删不掉,也格式化不了,只能学着在它们旁边绕道走。硬要改,只会把自己改得面目全非。

屏幕上的光标还在那儿瞎闪。我点开报错日志,一行行往下扒。没见着什么惊天动地的红字,就是几个参数飘出了预期值。我顺手改了改配置,重新跑了一遍。进度条慢吞吞地挪到底,跳出“系统恢复正常运行”。我长舒一口气,灌了口凉水,嗓子眼儿总算润回来了。

扣上电脑。屋里就剩冰箱压缩机“嗡”的一声。明天照旧。新需求还会来,旧账没清完,计划表照样会被撕烂。但奇怪,胸口那块石头反倒轻了。人这一辈子,哪用非得等所有毛病都治好了才敢迈步。只要报错后还能翻出日志,乱成一锅粥时还能按得下刷新,就算是在好好过日子了。可能生活本来就是个烂摊子,咱们能做的,也就是尽量让它别散架。

至于哪天能彻底“无bug”,压根没排进日程表。就算排了,估计也是骗自己的,未必真能实现。