晚上十一点多。啪一下,合上电脑。屏幕一黑,桌面图标全缩到右下角,跟下班打卡似的。工作、生活、阅读、娱乐,文件夹排得整整齐齐,活脱脱代码里的类,井水不犯河水。拉开抽屉,摸出那本《面向对象的分析与设计》,随手一抖,纸缝里掉张手绘UML图,边角全卷了毛。黑线白框,箭头绕来绕去。书上写得明白,好设计得讲究“高内聚、低耦合”。谁的地盘谁守好,别互相拽裤腿,系统才不至于半夜崩盘。咋理解都行,程序员叫架构,咱老百姓叫“别瞎掺和”。
盯着那堆方框发愣。咂摸半天,突然对味儿了。咱们这日子,不也他妈在搞“面向对象”?封的哪是代码,分明是脾气和身份。在公司,调用的全是“专业、靠谱”的公开接口;回了家,端出来的也是“安稳、从容”的方法实现。半夜冒出来的焦虑、犹豫,甚至想砸键盘的崩溃?全塞进私有变量,锁死。对外只递参数,绝不亮内部逻辑。这套路硬扛了这么多年,没出过大乱子,算你狠。可说实话,憋着不挺耗人的吗?谁真能一辈子把情绪开关拧死啊。
但真把“低耦合”当铁律呢?人会不会活成一座座孤岛?书上教程序员切断模块乱连,怕牵一发而动全身。可人与人这档子事,偏偏就得靠点“耦合”。没依赖,哪来的牵挂?接口不通,怎么交心?咱们老觉得把楚河汉界划得清清楚楚,就能少踩坑。可界线扫得太干净,连伸手抱一下,胳膊肘都发僵。这书,说白了是给机器看的。机器怕bug传染,人要是也这么防着,日子过得跟合租隔断房似的,连借个螺丝刀的人都找不着。
前阵子收拾储物间,翻出本落灰的旧日记。扉页还沾着半块干透的咖啡渍。里头记着跟朋友干仗,我嫌他“越界”,他骂我“太封闭”。当时我死磕底线,觉得保持距离叫成熟。现在翻回去看,步步为营的“封装”,说白了就是怂。怕麻烦。怕失控。怕把软肋亮出来让人家随便改参数?干脆把网线一拔。把日子拆成独立对象,是清爽,可也真凉薄。那时候年轻,总觉得“不欠人情”是最高级的体面。现在想想,纯属给自己上枷锁。
后来想通了。面向对象这套打法,本来是为了对付复杂局面,不是让你躲清静。软件隔离,是因为bug会传染;人得连上线,是因为孤独会发霉。咱们习惯了给万事万物打标签,习惯了张嘴前在脑子里挑个最稳妥的“接口”,以为能拿捏全局。可生活压根不是个等优化的冗余系统。有些情绪,本来就该摊开晾着;有些烂摊子,躲是躲不掉的。非要把日子过成零缺陷的代码?那叫写小说,不叫过日子。
有时候,干脆让别人瞅瞅你乱成一锅粥的“底层代码”。允许关系里灌点必要的“依赖注入”,日子反而跑得踏实。不是每件事都得划清责任田,也不是谁都得跟别人保持安全距离。天天琢磨怎么把自己调教成最稳定、最高效?人又不是出厂设置好的机器,哪用永远保持接口兼容。偶尔宕机,偶尔蹦出几行乱码,搞不好才是活着的实锤。这事儿得看运气,也得看对面那个人,愿不愿意陪你debug。
把书搁下,窗外天都快擦亮了。我还是爱给事儿分类,开口前还得掂量掂量词儿。只是偶尔,会故意留一个没设权限的端口。也不知道会不会有人顺着网线摸过来,撞见里面那团乱麻。管他呢。日子还长着,总得留点不封装的余地。大概人嘛,总得有点随时能“报错”的权利,才算没白活一场。