接口与数据链路
从请求发出到落库,逐段对齐字段、时区和统计口径,确认页面上那个数字能一路追回它的来源。
个人主页 · 质量与可靠性
把模糊的想法改写成能被验证的问题,再让结果开口。这里放我做完的实验、踩过的坑,以及那些被数据推翻过的判断。
我在一个小团队里负责数据产品的质量与可靠性,日常和接口、日志、定时任务打交道。工作里最难的部分往往不是把功能跑通,而是搞清楚它到底在什么条件下会不按预期运行。
写这个站点,是因为很多结论在聊天里说完就散了。把它们落成文字,能少走一遍弯路,也能在半年后回头确认当时的判断是否还站得住。
我偏好把话说小一点:能量化的就给出数字,不能量化的就标清楚那是猜测。名字取作「测试说是」,是想提醒自己别急着下结论——先让测试说话。
从请求发出到落库,逐段对齐字段、时区和统计口径,确认页面上那个数字能一路追回它的来源。
空值、超长输入、重复提交、超时重试。真正让系统出问题的,通常不是那条走得好好的主流程。
每条结论都留下环境、时间、操作步骤和原始输出,让下一个人能照着跑一遍,而不是只听我说。
把「偶发失败」按请求阶段拆成三段之后,问题从偶发变成了必现——中间那次重试掩盖了超时。
两个团队的同名报表差 3%,查到最后是统计时区不同。数字没错,是我们在说两件事。
幂等没做好的时候,重试不是容错,只是把问题放大一倍,顺带把日志搅乱。
先看日志里两行时间戳的差值,确认慢在哪一段,再决定要不要动索引。顺序反了会白忙一天。
命名比断言更能说明意图。半年后回头看,能读懂的是名字,不是那一串条件。
用到的东西不多,够用就好。下面这些是反复用到的组合,按场景排。
如果某篇手记对你正好有用,或者你正被同一类问题卡住,写信给我就好。看到会回,只是不一定快。我更愿意聊具体的细节,越具体越好。