解决问题之经验篇

1,958 阅读2分钟

问题不可能被穷举,答案经验有时候并不足以让我们应付千奇百怪的问题。在题海中,培养自己分析,定位,解决问题的能力似乎才是我们唯一的出路(以不变应万变)。

一般问题解决步骤:

  1. 遇到问题(不要慌)
    • 这个问题没见过,咋搞呀
    • 我正好有个技术群,丢个报错截图去问问
    • ...
  2. 分析问题(抽丝剥茧)
    • 多问自己为什么,从问题报错处,排除干扰,向上 debugger
    • 小黄鸭调试法 - 小黄鸭调试法,又称橡皮鸭调试法、黄鸭除虫法(Rubber Duck Debugging)是可在软件工程中使用的一种调试代码的方法。方法就是在程序的调试或测试过程中,操作人耐心地向小黄鸭解释每一行程序的作用,以此来激发灵感与发现矛盾
  3. 描述问题(提取关键词)
    • 清楚表达问题 - 很重要,直接影响到后面的关键词提取
    • 关键词转英文 - 推荐两个翻译网站 Google 翻译Deepl
  4. 关键词搜索(中,英文)
    • 中文 - 国内太卷,抄袭严重,问题没有出处。除非是特定问题(微信小程序之类的问题),否则不建议使用中文搜索
    • 英文 - 质量要高很多,推荐使用 Google 搜索,替代品 Bing 搜索
  5. 解决问题(总结经验)
    • 反思总结 - 沉淀是为了让自己能够举一反三
    • 分享经验 - 表达是为了进一步加深理解

如果以上步骤无法解决问题,向别人请教之前,以下几点是必须要做的:

  • 看官方文档(重要的事情说三遍)
  • 开源库或框架遇到问题,逛社区(别偷懒) - issuesdiscussionsstack overflow 必看
  • 问题仍无法解决,则需剥离业务逻辑,提供最小复现用例(节约彼此时间)- 别人未遇到过的问题,并不能靠空想解答,即使可以,也不建议进行这样的试探

如果以上步骤都做了,仍然无法解决问题,则可以在项目 issuesstack overflow 等问题社区发起提问:

  • 问题描述 - 简洁清楚的表达问题,切记啰嗦
  • 环境信息 - 问题发生的环境(系统信息,软件版本,浏览器版本等)
  • 如何复现 - 提供问题复现步骤 1,2,3,可以配合适当的错误截图及说明
    • 复现用例 - 用例要排除业务干扰,缩小问题范围
    • 我的尝试 - 自己做过哪些尝试,也可以让别人快速排除一些干扰项
  • 预期结果 - 希望得到什么样的结果

lencx 的博客 - 这里有阅读打卡,资源整理,开发工具,思考总结等等。