十一点多了。屏幕那冷光直往脸上糊,手里的《开源技术选型手册》也勉强啃到了后半截。编委会那帮老师搞的对比表,长得真叫一个吓人。性能跑分、社区活跃度、后期维护成本、生态兼容度……排得整整齐齐。盯久了,太阳穴突突地跳。啪。我直接合上书。脑子里冷不丁就窜出五年前刚入行那会儿。就为了定个技术栈,我硬生生熬了三个通宵。那时候哪敢犹豫啊?觉着只要选错一步,这辈子写代码的命就算交代了。
说白了,这事儿就一个理儿。咱们过日子,挑物件跟选技术栈,压根是一回事。换座城市?换个赛道?甚至琢磨跟谁处对象,谁心里没拨拉着本隐形的算盘?谁不是怕脚下一滑,全盘皆输?可书里反反复复就兜售这么个死理儿:选型,压根不是为了找什么神仙方案。就是挑个眼下最顺手的,剩下的,自己兜底。听着挺糙是不是?但扔进代码圈里一泡,还真他妈是真理。
早年间,我压根咽不下这口。总觉着人生是张开卷考,还非得第一次就蒙对标准答案。后来?后来栽过几次跟头,才咂摸出点味儿:搞技术和过日子,门道其实是一码事。开源圈子里,压根没有天生完美的框架。火得一塌糊涂的,过两年就凉透;稳如老狗的,往往笨重拖沓;前沿尝鲜的,坑能直接把你埋了。混久了的技术人,早就不信什么“一眼定终身”。全改口了,叫“边跑边修”。我觉得吧,这真不是妥协,反倒是一种清醒。指望一开始就造出个零bug的完美系统?跟指望找个体贴、省钱、还不吵架的伴侣一样。纯属想多了。
生活也差不多。我们总以为人生是张一次性答题卡,选了A,就永远碰不着B的景。可实际呢?路,都是脚底板趟出来的。刚入行那阵,怕学错语言。后来才懂,语法那都是死东西。真正拉开差距的,是碰到破事儿,你怎么拆解。刚上班那会儿,纠结大厂还是小作坊。后来才明白,平台就是个壳子。往里塞什么料,全看你自个儿。挑了一份工,不是大结局,是刚发牌。认准了个人,也不是签了卖身契保你一辈子不吵架,是愿意在磕磕碰碰里,把脾气慢慢磨圆。可能有人觉着这说法太丧。但反过来想,要是真有一劳永逸的选择,那日子过得也太没劲了,不是吗?
上周收拾旧电脑,翻出个五年前的项目文件夹。里头代码注释,还留着当初的纠结:“这模块上A方案还是B方案?”“现在社区还有人管吗?”当时觉得天都要塌了。现在瞅瞅?就一堆平平常常的开发流水账。代码早重构过三四轮,骨架也换了几茬,但项目照样跑得欢。没被扔进垃圾桶,只是被一点点改成了现在的鬼样子。版本控制里那一长串提交记录,记的根本不是某次拍脑袋的完美决定。而是改bug、妥协、再发版的一地鸡毛。你看,哪有什么一锤定音?全是一次次打补丁,打出来的。
我琢磨着,咱们怕的估计不是选岔了道,而是不敢认“压根没最优解”这个茬。外头总有人指手画脚,告诉你往哪走。市场爱给你贴标签,同龄人天天制造焦虑。连自己,都在脑子里预演各种翻车现场。可书里那厚厚一摞对比表,背后全是试错、听反馈、再迭代的血泪史。开源那点精神,说白了,就是“允许搞砸”的底气。它不逼你一开始就造出个圆滚滚的完美车轮。它只问你:图纸摊开没?别人提了意见听不听?自己动手改没改?我觉得吧,这道理放哪儿都适用。未必多新鲜,但能让人松口气。
如果没有人知道你的选择,你还会这么选吗?如果不需要证明给任何人看呢?
书合上了。外头的街灯,也暗了不少。明天照旧得对着屏幕敲代码,开会扯皮,回一堆消息。那些曾经让我半夜翻来覆去烙饼的“关键抉择”,早就被日复一日的琐碎,给磨钝了。人这一辈子,本来就没那种一锤定音的标准答案。咱们就是在无数个“凑合能用”的节点上,一遍遍把自己重塑。至于到底选没选对?让时间去验吧。反正日子长着呢。多踩几脚水坑,自然就明白往哪走了。这事儿大概就是这么个意思。别太较真,跑起来就对了。