晚上十一点。屏幕冷光打得人眼晕。抽屉最底下,我摸出本二十年前的旧书,《MX 2004 Dreamweaver互动网站设计百宝箱for ASP》。纸页脆得厉害,一碰就掉渣。翻开看,里头密密麻麻全是教人怎么用ASP和Access数据库搭互动网站的土办法。有一章专门掰扯“建立数据库连接”,抠得真细。服务器里建数据源,敲一串长得让人头疼的连接字符,再把网页表单的字段,一个个拖到数据库的列上。弄妥了,点预览,敲两行字,按下提交。路径没写错,字段对上了号,数据“嗖”地一下落进库里。可要是斜杠少敲一个,或者连接符里混进个空格,屏幕准给你甩一句“连接失败”。真够冷的。

早年我特天真。以为代码敲得溜,连接跑通了,人和人打交道,也就水到渠成了吧?后来碰了几次壁,才咂摸过味儿来。处关系,其实压根就是一个德行。咱们费老大劲搭“表单”——琢磨回微信怎么显得得体,朋友圈照片怎么修图排版,聚会时硬挑些不踩雷的话头。总以为协议对上了,“连接字符串”没毛病,对方就能原封不动接住你心里那点事儿。可现实呢?往往就卡在那句“发送”上。手指头悬在鼠标左键上,心里直打鼓。发,还是不发?

有回跟个熟人吃饭。扯着工作、房价、新上的电影,场面热乎得跟局域网里的静态网页似的。可我一不小心漏了句最近睡不好、心里发虚。对方眼神立马飘走。转头就开始倒苦水,孩子补习班多贵,或者扯哪只网红猫又火了。那一瞬我算是看透了。不是人家不想接茬。是人家数据库的接收端口,早就换了。各跑各的系统,字段对不上,硬塞也塞不进。你那点情绪扔出去,跟没绑数据源的表单一个德行。悬在半空,连个回声都听不见。这事儿大概就是这么个意思。别太往心里去。人嘛,谁还没个跑偏的时候。

书里原话挺漂亮,说互动网站的魂儿在于“让数据流动起来”。可数据要流得动,得两边都肯开着端口。咱们这代人,写前端的手艺倒是练出来了。界面整得锃亮,交互逻辑顺滑得不沾手。连拒人千里都裹着糖衣,“已读不回”、“最近忙着呢”,一套下来,体面得很。但肯去改后端配置的,没几个。真的。接住别人的脆弱、焦虑、不合时宜的掏心窝子,太耗服务器内存了。大伙儿宁可挂着个“连接成功”的假图标,也懒得去碰真刀真枪的协议冲突。我觉得吧,未必是人心变冷漠了。可能就是现在大伙儿各自都太累。后台跑着十几个任务,哪还有多余的带宽去接别人的数据包?

说句掏心窝子的,我以前轴得很。认定只要我够敞亮、够主动,总能凿开一条道。后来有回加班到后半夜。死盯着屏幕上跳红的报错提示,突然就懒得折腾了。有些连接,压根就不是为了传数据设计的。它们顶多证明咱俩曾经试着对过暗号。就像那本书封面上印的“挑战自我极限、梦想轻松实现”,看着挺燃,可你调代码调到凌晨两点,心里只求它别弹红框就行。日子过到后来就这德行。你吭哧吭哧搭好交互界面,到头来发现,能稳稳接住你那些非标数据的,掰着手指头都数得过来。可能就两三个。

现在我也不死磕每次表单非得要个返回值了。有些话,敲完发送键就完事。回不回来,随缘。有些沉默搁在那儿,本身就算个回应。屏幕上的连接测试还在后台跑,进度条慢吞吞地往前蹭。我不再死盯“成功”俩字。就瞅着输入框里的光标,一闪,一闪。人这一辈子,哪用得着把每个端口都焊死?能在某个静下来的当口,确认自己那点数据平安送达过,就算没白活。大概吧。生活这东西,本来就不是个严丝合缝的系统。留点缓冲地带,反倒能喘口气。