十一点半。合上电脑,啪嗒。屋子一下暗了。
桌角那本《ASP.NET 2.0动态网站开发基础教程》还摊着。纸脆得离谱,跟苏打饼干一样,指尖一碰就掉渣。满篇是我当年手抠的笔记。服务器控件怎么调,配置文件咋配,还有怎么用C#把一堆破烂代码硬凑成个能跑的系统。现在瞅着,真他妈想笑自己。当年咋就信了这套邪?
以前我特信这个。觉得日子要是按代码的逻辑过,心里就踏实。跟书上教的一模一样:拽几个现成控件,绑数据,配环境,剩下的全甩给框架。省心,少踩坑,一切尽在掌握。多美啊。我也这么干。七点睁眼,通勤路上灌播客,工作日死磕加班,周末非得去社交或者啃书。我把这些全当“控件”,死往人生画布上拖。就指望它们能自动拼出个体面日子。可拉倒吧。生活压根不吃那套操作手册。
结果呢?烂摊子砸脸上了。硬接了个没在计划里的破项目,连着几周熬到凌晨。之前那点引以为傲的“配置”,说散就散。觉?睡得跟个惊弓之鸟似的。健身卡吃灰,饭局黄汤。有回瘫在出租屋破沙发上,盯着屏幕上一串狂跳的报错红字,脑子里“嗡”的一下。好家伙。我一直在拿死板的配置文件,硬框一个活蹦乱跳、动不动就宕机的人。
翻回书里找答案。ASP.NET 2.0当年出来,图的就是给开发者减负。底层那些破事儿,网络请求啊,页面状态管理啊,全打包封装了。你只管盯业务逻辑。听着挺美,是吧?烂摊子甩给系统,自己只管交差。可咱们大概把“简化”想岔了。框架是把你从重复劳动里捞出来,让你腾出手去动脑子、折腾新花样。不是让你把过日子也塞进死模板里。这事儿真不成立。硬把生活当程序写,人迟早得崩。
后来我又把教程翻出来,死磕“导航与用户控件”那章。老作者手把手教搭页面跳转逻辑,教怎么复用公共组件。写得滴水不漏,严丝合缝。可人又不是网页。谁规定非得踩着既定路由走?谁没个突发奇想的时候?没准哪天下午,咖啡喝到一半,突然就想换个活法。或者半夜脑子一热,猛地决定把走了很久的那条道给劈了。那些没提前写进配置文件的情绪和念头,才是日子最带劲的地方。
折腾一圈,才咂摸出味儿。过日子,真没必要往身上塞那么多预定义控件。真正的“动态”,根本不是代码跑得有多飞。是你敢不敢让系统爆出未处理的异常。敢不敢让页面在运行中途重新加载。不用把每天的日子绑死数据源,更不用提前写好每个突发事件的反应。有时候,干脆掐了自动配置。让日程表留点白。反倒能塞进更多说不准的惊喜。哪怕那惊喜是个坑,踩了也就踩了。
现在?早不死磕把生活排版成严丝合缝的静态页面了。碰见计划外的幺蛾子,我不再急着疯狂try-catch。就停下来,瞅瞅它到底想把我往哪儿领。屏幕上的代码,一行行调就行,报错了能重跑。可人生这系统,回滚按钮谁都能随手按?有些坑,掉进去就得自己爬。
夜深了。窗外的路灯还亮着,昏黄的光,照得书架上的浮灰都看得见。我把那本旧教程往最底层一塞。没合上。反正有些东西,本来就没必要非得设成默认值。跑不跑通,全看那天的心情。