开发手记 · 第 5 / 9 篇 合集目录 ‹ 上一篇 下一篇 ›

清一个点位系统的配置项时,我顺着某个参数名去代码里搜,发现它只在界面和配置文件里出现,真正做计算的那段代码,从头到尾没读过它。

界面上能编辑、能保存的参数,和代码里会生效的参数,中间隔着一段经常断掉的线。设置页给人的天然错觉是,你都能改它、存它了,它凭什么不干活。

这类断裂不是孤例。一个滤波点数之类的信号处理参数,界面和配置都有,算法层零读取;一个平均次数参数,同样只存在于配置;一个模拟运行开关,在监控循环里被注释掉了,等于永远走真实路径;一个优先模式的选择,只有界面和配置,算法分支没接。它们共同的特征是,配置项先被界面和产品定义出来,算法要么后写没赶上,要么那条功能规划了没实现,参数就留着占位。

第一种危害是现场调试的人。他调了半天没效果,会怀疑是自己不会调、是设备不行,而不是这个旋钮压根没接线。信任错了输入,排错方向就反了。

更麻烦的是还有一类薛定谔的生效:参数在某条少走的路径上被读了,大部分路径不读。结果同一个设置,有时候灵有时候不灵,比彻底不灵还难查。你复现时它生效,客户复现时它不生效。

现在我加任何配置项,都会顺手验证一遍,设了它,行为到底变没变。也学会了反向看那些看起来调了没用的旋钮,不一定是设备坏了,很可能只是没人接这根线。先去代码里搜一下,比换硬件便宜得多。