2026-07-07
一条白线,我们追了四个版本
客户说窗口顶上有两条标题栏。每一版我们都以为修好了,直到换了测量工具,才发现之前的探针一直在报"假健康"。
建智云交付之后,客户发来一个问题:软件窗口的顶部,出现了两条标题栏。一条是我们自己画的,另一条是系统的,中间还夹着一道白线。
在我们自己的电脑上,这个问题从来没有出现过。
第一版:从窗口尺寸查起
最直接的猜测是窗口的尺寸算错了,系统的标题栏没有被完全盖住。我们加了一个诊断探针:程序启动时把窗口的位置和大小写进一个日志文件,请客户运行后发回来。
客户很配合,日志很快回来了。探针报告的尺寸完全正常。我们按这个方向做了修正,发出了新版本。
客户回复:还在。
第二版、第三版:往更深处找
既然窗口本身没问题,那就可能是窗口里面的东西没有铺满,露出了底下的一截。我们把探针扩展到整棵子窗口树,逐个检查有没有留出空洞。又发了一版。
还在。
再往下一层,是负责渲染界面的浏览器组件。我们发现它有一个拖动窗口的特性,在客户那台机器上被渲染成了一条白条。于是我们整套弃用了这个特性,改用系统原生的方式拖动窗口。又发了一版。
还在。
第四版:换一把尺子
三个版本下来,每一次的探针数据都说”一切正常”,每一次客户的屏幕上都还是两条标题栏。问题开始变成:我们测量的,到底是不是客户看到的?
最后一版,我们换了测量方式:不再问程序”窗口在哪里”,而是直接去问 Windows 的窗口合成器,最终画到屏幕上的边界到底在哪里;同时对真实屏幕做截图比对。
答案出来了:系统把原生标题栏画在了我们一直在测量的那个区域之外。前面所有的探针都没有说谎,它们只是在认真地测量一个错误的范围,所以一直在报”假健康”。
找到真正的边界之后,这个问题在这一版被彻底解决。
我们从中带走的
- 测量工具本身也需要被验证。 探针说正常,只能说明它测量的那一块正常。
- “开发机正常、客户机出错”是一整类问题。 我们在别的项目里也遇到过好几次:打包时漏掉的依赖、客户服务器上缺的运行时、不同系统之间的文件权限。现在遇到这类问题,第一步先问:我们和客户之间,到底哪里不一样?
- 客户愿意陪你查四个版本,是一种信任。 每一次回传日志,客户都要自己动手操作。这份耐心,我们记着。