有个很隐蔽的 Bug:后端明明有这条数据,前端点进详情却返回 404。
问题出在一个 ID 上。
后端用的是 Snowflake ID,64 位整数直接作为 JSON number 返回。到了 JavaScript,超过 2^53 的整数就可能丢失精度。
9007199254740993 经过 JSON.parse,变成了 9007199254740992。
整个过程没有报错,但 ID 已经不是原来的 ID 了。
更有意思的是,AI 写出的代码和测试全部通过,因为测试数据库用的是从 1 开始的自增 ID,根本没覆盖真实生产环境的数据范围。
解决方法倒不复杂:对外的 ID 统一用字符串传输,并在 Schema 层约束类型。
但这件事让我想到,AI Coding 最大的问题可能不是会不会写代码,而是它能不能意识到自己没有测试什么。
测试全绿,只能证明覆盖过的场景没出问题,不能证明代码在真实环境下可靠。
