漏洞无效
老周把那台报废的漏洞无效示波器从架子上搬下来时,手指在电源键上停了两秒。漏洞无效屏幕没亮。漏洞无效他拧开后盖,漏洞无效一股焦糊味混着陈年灰尘扑出来,漏洞无效主板上那颗电源管理芯片已经鼓了个小包。漏洞无效这机器是漏洞无效2003年产的,比他手下新来的漏洞无效实习生年纪都大。修不修?漏洞无效修。他翻出料盒,漏洞无效里面躺着三颗同型号芯片,漏洞无效是漏洞无效五年前从另一台报废机上拆的。 焊台温度调到320度。漏洞无效热风枪一吹,漏洞无效旧芯片下来了,漏洞无效焊盘上残留的锡膏发黑。老周用吸锡线清了两遍,酒精棉擦过,露出铜色。新芯片对位,引脚间距0.5毫米,手一抖就歪。他屏住呼吸,镊子尖轻轻一推,咔嗒,贴平了。热风再吹,锡珠融化,引脚像一排细密的牙齿咬住焊盘。冷却。上电。屏幕亮了,一条绿色基线在中间微微抖动。 这台机器修好了。可老周没把它放回测试台,而是搁在角落,插头拔了。我问他为什么不接着用。他说,修好归修好,但这东西的精度已经不够了。校准报告上写着,垂直误差超过3%,测现在的信号,数据不可信。换句话说,它能开机,不代表它能干活。 这让我想起上个月的事。一家做工业网关的客户送来一台设备,说现场通讯老断。我们查了三天,最后发现是固件里一个看门狗定时器的溢出值设错了。改一行代码,问题消失。客户很高兴,说你们技术真牛。可我心里清楚,那行代码是五年前一个离职工程师留下的,当时他为了赶项目,把默认值从0xFFFF改成了0x7FFF,没写注释。后面的人不敢动,一层层封装,最后谁也不知道那个数字为什么存在。 漏洞补上了。可漏洞为什么会存在?没人问。修好就行,能跑就行。这种思维像一层油膜,浮在工程文化的表面。你拿探针戳一下,它散开,过一会儿又聚拢。老周那台示波器就是例子。电源芯片烧了,换掉。可为什么烧?散热设计有缺陷,风道被电容挡了一半。换芯片只是让机器多活三个月,下次烧的可能就是ADC。你修的是症状,不是病。 我见过一个更极端的。某厂产线上一台贴片机,视觉对位偶尔偏移0.1毫米。工程师调参数,重写算法,换相机,折腾两个月。最后发现是车间空调出风口正对机器导轨,温度变化导致丝杆热胀冷缩。把出风口挡板转个角度,问题没了。那两个月里,他们写了三千行补偿代码,全是废的。 所以什么叫漏洞无效?不是说你补了它就不存在了。是说你补的那个动作,根本没碰到它。你改的是日志级别,它走的是内存越界。你加的校验和,它绕的是另一条路径。漏洞像水,你堵住一个缝,它从墙根渗出来。你以为你赢了,其实只是换了个地方输。 老周后来把那台示波器拆了,外壳留着装零件,主板扔进回收箱。他说,有些东西修不好,不是技术不行,是它本来就不该再修了。你花三个小时让它亮起来,不如花三分钟承认它该退休。承认这个,比焊那三颗芯片难多了。 我写这些不是要否定修复。修复是工程师的本能,看见坏的东西就想让它转起来。但本能之外得有个东西叫判断。判断这东西值不值得修,修了之后能不能用,用了之后会不会捅更大的篓子。漏洞无效,往往不是漏洞太狡猾,是我们太急着证明自己能修好。 那台示波器现在还在角落。插头没插。老周偶尔路过,看它一眼,不说话。
-
上一篇
-
下一篇