晚上收拾书桌。顺手把这几年攒的旧笔记,跟现在的待办清单往一块儿塞。抽屉最里头,摸出一本硬壳本子。里头夹着两张早年画的“人生规划图”。好家伙,那线画得,直得跟绘图仪吐出来的一样。箭头咬箭头,目标、路径、截止日期,标得那叫一个严丝合缝。现实呢?纸早压箱底落灰了。日子倒是像一锅没看住火的白粥,越搅越稠。我盯着那些干巴巴的箭头,脑子里突然就蹦出俩字:遗留系统。对,就是那个词。好多年前翻过的一本技术书里,老这么叫。

书名挺唬人,《企业与信息系统建模分析》。翻开来,满篇IDEF、UML,一堆看着就让人眼皮打架的图形符号。说句掏心窝子的话,这书真不讨喜。干巴巴的框架图,能看睡过去。但你耐着性子往下翻,嘿,它扒了一层皮。体系一旦复杂起来,建模压根不是为了整张完美图纸。纯粹是为了把那些盘根错节的依赖关系,勉强捋顺。系统跑久了,铁定拖出一堆“遗留”模块。接口对不上,数据互相扯后腿。你非拿新系统去硬盖旧系统?不出乱子才怪。能救场的办法,其实就一条。别瞎折腾。顺着旧代码的纹理,一寸一寸往里改。

这话套在自己身上,扎不扎心?咱们谁没给自己画过这种“建模图”?刚毕业那阵,琢磨着非进大厂不可。谈恋爱,预设好相处的步调。到了三十岁,“应该”怎么活,全塞进了Excel表格。那时候多天真啊。以为只要语法没错,逻辑通顺,日子就能顺顺当当跑起来。可生活是张白纸?扯淡。它分明是一台跑了十几年、补丁摞补丁的老机器。没兑现的野心,硬撑着的交情,靠惯性攒下来的毛病。全是遗留代码。你想大改?我估计悬。一碰开关,整个系统跟着抖三抖。搞不好,直接死机。

以前我轴得很。总觉得成长就是做减法。没用的全删了,日子才清爽。后来才咂摸出味儿来。生活里的“冗余”,未必是包袱。有时候,反倒压着真重量。走弯路踩的坑,看着没用的老交情,甚至反反复复冒出来的焦虑。都是系统底层在跑的数据流。你拿张崭新的UML图去一键替换?门儿都没有。硬搞格式化?现实立马给你蓝屏。现在?我不死磕画完美蓝图了。干脆学个老修理工,去摸清那些旧接口的脾气。哪儿卡壳,塞个缓冲垫。哪儿顶牛,打个转接。承认这系统本来就不周整,反倒能跑踏实点。毕竟,谁指望一台老机器,能跑出跑分软件里的最高纪录?

书里还扯过建模的语法和语义。语法是死规矩。语义,是跑起来到底啥样。咱们平时太死磕语法。要求生活严丝合缝。却忘了,语义才是活着的实打实的证据。计划外的歇脚,关系里的磕碰,工作上的低头。恰恰是日子真实的语义。不漂亮,甚至挺笨。但没它们?这机器早停转了。我觉得吧,这辈子可能也拼不出个滴水不漏的人生模型。但这不妨碍咱们接着往下调。完美主义这玩意儿,在过日子这事儿上,多半是个累赘。

最后,我把那本旧笔记重新塞回抽屉。压根没舍得扔。计划表上的箭头还是那么直。只是,我不再指望它们能发号施令。生活大抵如此。一边画着模型,一边被现实推着屁股往前走。能折腾的,也就是偶尔停下手,瞅瞅哪些旧代码还在死撑着咱们,哪些早就该悄悄卸了。至于明天还会冒出什么新麻烦?让明天的自己头疼去吧。反正今天的代码,还能再跑一天,是一天。