首页/第三阶段/第 3 课

LESSON 03 · DIAGNOSIS

系统化定位
跨层问题

真实系统的问题经常跨越多个组件。定位的关键,是找到数据第一次偏离预期的位置,而不是同时修改所有可疑部分。

课程进度3 / 5

建议学习时间:35 分钟
交付一份诊断记录

学完这一课,你能:

  • 把用户反馈转换成时间线和可复现步骤
  • 按输入、前端、网络、服务、数据逐层收集证据
  • 建立假设、验证和排除记录,最终确认根因

1. 先画问题时间线

“保存失败”只是最后看到的现象。你需要记录问题发生前后系统经历了什么,以及每一步是否符合预期。

时间线示例新增问题失败

10:02:11 用户点击保存;10:02:11 前端通过了必填校验;10:02:12 请求返回 500;10:02:12 页面只显示“出错了”;10:02:12 服务日志记录数据库字段不能为空。

第一个明确偏离预期的位置是后端写入数据库时缺少字段。页面提示不清楚是另一个需要改进的问题,但不是原始根因。

2. 按五层证据树逐层排除

输入用户与环境

账号、数据、设备、时间和操作是否特殊。

前端页面与状态

事件是否触发,发送内容是否正确。

网络请求与响应

地址、方法、状态码和响应体。

后端日志与规则

请求进入哪里,在哪一步抛出异常。

数据记录与约束

写入是否发生,数据是否符合约束。

每一层都问同一个问题:“这里的实际证据是什么?它与预期有什么不同?”找到第一处差异后再向下确认,不要凭印象跳层。

3. 用假设表控制推理

假设支持证据反证方法结论
按钮没有触发页面没有成功提示查看网络面板是否发出请求已排除:请求存在
接口地址错误请求返回失败检查请求地址与路由日志已排除:请求到达后端
缺少必填字段数据库错误日志指向字段对比请求内容与数据模型确认:字段映射遗漏
没有反证方法的“可能原因”价值很低让 AI 给出假设时,必须同时要求它说明需要什么证据、如何安全验证,以及什么结果会推翻这个假设。

4. 根因、修复和预防要分开

  1. 根因为什么系统会进入错误状态,例如接口字段名与数据模型不一致。
  2. 即时修复恢复正确字段映射,让核心流程重新可用。
  3. 影响确认检查已有数据是否损坏、其他接口是否存在同类问题。
  4. 预防措施增加接口校验、自动测试和可读错误提示,防止同类问题复发。

本课交付 · 30 分钟

完成一份诊断记录

  1. 选择项目里一个真实或可控的问题,写出环境与复现步骤。
  2. 建立从操作到日志的时间线。
  3. 按五层证据树记录每层的预期和实际结果。
  4. 提出最多 3 个假设,并为每个假设设计反证方法。
  5. 记录根因、修复、验证结果和一项预防措施。

离开前自测