为啥程序员老鸟总爱“硬改框架”?新手:我返工到怀疑人生

17 阅读6分钟

为啥程序员老鸟总爱“硬改框架”?新手:我返工到怀疑人生

刚入门当程序员那会,我差点被外包公司的“高压节奏”和“老鸟操作”双重暴击到转行。现在回想起来,最让我崩溃的不是“半天看文档下午干活”的魔鬼工期,也不是人事小姐姐隔三差五的“进度催命”,而是那些技术大牛们谜之执念——放着简单的页面配置不用,非要死磕改框架

我入门学的是FastAdmin,懂的都懂,这框架是基于ThinkPHP搞的,但文档根本不能直接套ThinkPHP的来用,必须抱着FastAdmin官网的文档死磕。外包公司不养闲人,上午刚把文档翻得头晕眼花,下午主包就丢过来一个CRUD生成表单的需求,要求“弹窗要全屏,不然数据多了挤得像沙丁鱼罐头”。

我对着生成的默认代码抓耳挠腮,默认弹窗宽度是['60%;','80%'],确实窄得可怜。正当我在FastAdmin文档里疯狂搜索“弹窗宽度配置”时,旁边工位的老鸟大哥凑了过来,扫了一眼屏幕就嗤笑一声:“这还不简单,直接改框架底层啊!”

我当时眼睛都亮了,觉得“不愧是老鸟,出手就是硬核”。只见大哥噼里啪啦打开框架的核心模板文件,找到弹窗样式的默认配置,直接把数值改成了“100%”。改完还拍了拍我的肩膀:“搞定,以后所有页面的弹窗都是全屏,一劳永逸!”

我当时差点当场拜师,美滋滋地接着往下写页面。结果第二天悲剧就来了——主包看了我的代码后,指着屏幕骂我:“谁让你把所有弹窗都改成全屏的?列表页的小弹窗也全屏,用户点一下直接占满整个屏幕,这体验能看吗?返工!”

我当时直接懵了,赶紧跑去问老鸟大哥。大哥愣了一下,才慢悠悠地说:“哦,忘了告诉你,个别页面要改的话,你再改回去就行了。”我看着自己写了一天的代码,又看看框架里被改得乱七八糟的底层配置,差点当场哭出来。那天我加班到半夜,不仅要改自己的业务代码,还要小心翼翼地把框架配置还原回去,生怕动了其他模块的功能。

更崩溃的是,类似的事情还发生了好几次。有次做数据导出功能,老鸟大哥觉得框架默认的导出格式太丑,直接改了框架的导出核心类。结果导致其他同事做的几个模块导出功能全部报错,整个团队陪着加班排查问题,最后发现是大哥改框架时没考虑兼容性。

直到有一次,我实在不想再返工,抱着“死马当活马医”的心态,把FastAdmin的文档翻了个底朝天,突然发现——原来每个页面的JS里直接配置一下,就能单独设置弹窗宽度!就几行代码的事:把页面里的window.config.formWidth改成'100%',其他页面完全不受影响,简单得像喝水一样。

我当时差点拍大腿骂自己蠢,更想不通:老鸟大哥真的不知道这个简单的配置吗?还是故意不用?后来跟公司的资深产品经理吐槽,他笑了半天,给我总结了老鸟们“爱改框架”的几个奇葩原因,听完我直呼“过于真实”。

第一个原因:“路径依赖”后遗症。很多老鸟是从没有框架的年代过来的,那时候写代码全靠“手写一切”,遇到问题就硬改底层逻辑,久而久之形成了习惯。在他们眼里,“改框架”才是解决问题的“正统方式”,反而会忽略框架本身提供的便捷配置——就像习惯了用大哥大的人,看到智能手机的快捷功能,反而觉得“不够直接”。

第二个原因:“炫技惯性”在作祟。不得不承认,改框架确实比改页面配置“看起来更厉害”。尤其是在新手面前,一顿操作改完框架底层,再轻描淡写地说一句“搞定”,很容易建立“技术大牛”的人设。至于后续会不会给其他人挖坑,反而成了次要问题——毕竟“搞定当下”才是外包的常态。

第三个原因:真·没注意到细节配置。这一点可能有点颠覆认知,但确实存在。很多框架的文档又多又杂,核心功能的配置往往藏在不起眼的角落。老鸟们因为经验丰富,遇到问题时会下意识地用自己熟悉的方式解决(比如改框架),反而不会像新手一样逐字逐句看文档,自然也就错过了这些简单的配置项。就像我们找东西时,总爱往复杂的地方找,却忽略了最显眼的位置。

还有一个最扎心的原因:懒得多页面配置。老鸟们觉得“改一次框架,所有页面都能用”,省得在每个页面里单独写配置。但他们忘了,外包项目的需求千变万化,很少有“所有页面都需要一样配置”的情况,最后反而要花更多时间收拾烂摊子。

后来我慢慢上手后发现,其实不管是FastAdmin还是其他框架,设计者早就考虑到了个性化需求,大多都提供了页面级的配置方案。比如FastAdmin的表单宽度、弹窗样式、导出格式,都能在页面JS或控制器里单独配置,根本不用动框架底层。那些动不动就改框架的老鸟,与其说是“技术厉害”,不如说是“思维固化”。

现在我也成了别人口中的“老鸟”,但每次遇到问题,都会先问自己三个问题:“框架有没有现成的配置?有没有官方示例?改框架会不会影响其他模块?”毕竟,程序员的核心是“解决问题”,而不是“炫技”。能用简单的方法搞定,何必非要跟框架死磕呢?

最后想跟刚入门的新手说一句:遇到老鸟让你改框架时,别着急动手,先翻遍官方文档再说。说不定你多翻两页,就能少加半天班,少回一次工——毕竟,返工的苦,一次就够了!