问题解决之方法论

方法论

确认问题

  • 确认是不是一个问题,是什么性质的问题
  • 评估严重程度和优先级别,按照重要紧急程度做妥善处理,重要且紧急时应当先恢复服务(回滚或规避)
  • 尽量复现问题,复现问题对于定位问题很重要

定位问题

  • 收集足够的信息,明确问题边界
  • 收缩问题边界
    • 采用二分法快速排除
    • 竖向分层,逐层排查
    • 横向分解为两个或多个子问题,各个击破

规避和解决问题

  • 有时候不要直面解决问题,而是应该规避问题
  • 务必评估修改对系统的影响

注意事项

  • 对于复杂问题应当更严谨,如在收缩边界时一旦犯错会很致命会浪费大量时间
  • 问题的原因往往不止一个,因此有时候解决完一个问题后整个问题并没有解决很正常,此时应该继续定位其他原因并解决

技巧

  • 查看 Log
    • Access log
    • 代码 Log
    • 其他日志
  • 关注报错信息
    • Chrome console log
    • 编译错误和警告,区分编译时和运行时有时候很重要:什么是编译时和运行时?
    • 控制台错误输出
  • 善于搜索
    • 善于使用恰当的关键字在代码里搜索,如在工程里找 axios 拦截器,我们可以搜索特征串 “interceptors.” 可以快速找到响应和请求拦截器
    • 善于使用恰当的关键字在飞书云文档里搜索
    • 善于使用恰当的关键字在合适的网站如 stackoverflow.com,github 的 issues 等搜索
  • 回溯堆栈
本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢阅读,有收获的话不妨点个赞:smiling_imp:
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!