一个业务系统最可怕的 bug 不会崩溃:它看起来一切正常,只是少了几条数据。
三种最常见的静默
导入只报成功数。 客户导入 120 行 Excel,界面显示「导入成功 117 条」,剩下 3 条去哪了?没人知道。三个月后对账才发现,那 3 条是格式稍有不同的日期。我们给一家园区物业做收费系统时,把这个定成硬规矩:导入结果必须列出「失败 N 条,每条为什么」,房号不存在、读数倒退、格式错误,一行一个原因。
筛选条件把记录吞掉。 列表默认只显示「本月」,客户以为那笔上月的欠费不存在了。真实系统里,任何默认筛选都要在界面上明显标出来,并且让人一键清掉。
找不到的值被悄悄替换。 下拉框里的负责人已经停用,系统自动换成列表里第一个人。这是最隐蔽的一种:数据还在,只是归到了错的人名下。正确做法是照样显示并标注「已停用」,让人自己决定。
为什么工程上容易犯
因为「过滤」在代码里就是一行 if,写的时候顺手,不写提示也不会报错。测试的时候数据干净,永远碰不到那个分支。只有到了真实数据里,脏数据一来,就静静地漏了。
我们的做法
- 每一个过滤条件,都要有对应的「被过滤了多少条」的展示。
- 导入、生成账单、批量操作,结果面板必须有失败清单,不许只有成功数。
- 验收时故意塞坏数据进去,看系统会不会当面说出来。
客户不怕系统报错,怕的是系统不说话。

