核心问题

为什么不要从头到尾一行行找 Bug?

真实场景

一个流程有十几个步骤:提交表单、校验权限、写数据库、发消息、更新缓存、推送通知。结果最后通知没发出去。

新人可能从第一行代码看到最后一行。资深工程师会先问:

问题发生在流程的前半段还是后半段?

常见误区

坏判断是:

我把代码全看一遍,总能找到。

全看一遍不是不行,但效率低,而且容易被无关细节拖住。

工程视角

二分法的核心是快速缩小范围:

  • 用日志判断请求有没有到达后端。
  • 用断点判断数据在哪一步变坏。
  • 用接口对比判断前端还是后端。
  • git bisect 判断是哪次提交引入问题。

不是线性搜索,而是分段排除。

PM 可以怎么做

PM 可以帮助把问题切段:

  • 用户动作是否成功提交?
  • 后台是否收到请求?
  • 数据库是否写入?
  • 后续异步任务是否执行?
  • 通知服务是否成功发送?

每回答一个问题,范围就缩小一半。

Atlas Action

遇到复杂流程 Bug,画一条链路:

用户操作 -> 前端请求 -> 后端接口 -> 数据库 -> 消息队列 -> 下游服务 -> 用户反馈

然后逐段标注:已确认正常、未确认、已发现异常。

小结

二分法不是数学技巧,而是一种工程排障习惯。

PM 不需要会打断点,但要会帮助团队把问题拆成可验证链路。