解决问题之经验篇
问题不可能被穷举,答案经验有时候并不足以让我们应付千奇百怪的问题。在题海中,培养自己分析,定位,解决问题的能力似乎才是我们唯一的出路(以不变应万变)。
一般问题解决步骤:
遇到问题
(不要慌)
这个问题没见过,咋搞呀
我正好有个技术群,丢个报错截图去问问
...
分析问题
(抽丝剥茧)
多问自己为什么,从问题报错处,排除干扰,向上
debugger
小黄鸭调试法[1] - 小黄鸭调试法,又称橡皮鸭调试法、黄鸭除虫法(Rubber Duck Debugging)是可在软件工程中使用的一种调试代码的方法。方法就是在程序的调试或测试过程中,操作人耐心地向小黄鸭解释每一行程序的作用,以此来激发灵感与发现矛盾
描述问题
(提取关键词)
清楚表达问题
- 很重要,直接影响到后面的关键词提取关键词转英文
- 推荐两个翻译网站 Google 翻译[2] 和 Deepl[3]
关键词搜索
(中,英文)
中文
- 国内太卷,抄袭严重,问题没有出处。除非是特定问题(微信小程序之类的问题),否则不建议使用中文搜索英文
- 质量要高很多,推荐使用 Google[4] 搜索,替代品 Bing[5] 搜索
解决问题
(总结经验)
反思总结
- 沉淀是为了让自己能够举一反三分享经验
- 表达是为了进一步加深理解
如果以上步骤无法解决问题,向别人请教之前,以下几点是必须要做的:
看官方文档
(重要的事情说三遍)开源库或框架遇到问题,逛社区
(别偷懒) - issues[6],discussions[7],stack overflow[8] 必看问题仍无法解决,则需剥离业务逻辑,提供最小复现用例
(节约彼此时间)- 别人未遇到过的问题,并不能靠空想解答,即使可以,也不建议进行这样的试探
如果以上步骤都做了,仍然无法解决问题,则可以在项目 issues
或 stack overflow
等问题社区发起提问:
问题描述
- 简洁清楚的表达问题,切记啰嗦环境信息
- 问题发生的环境(系统信息,软件版本,浏览器版本等)如何复现
- 提供问题复现步骤 1,2,3,可以配合适当的错误截图及说明复现用例
- 用例要排除业务干扰,缩小问题范围我的尝试
- 自己做过哪些尝试,也可以让别人快速排除一些干扰项预期结果
- 希望得到什么样的结果
参考资料
小黄鸭调试法: https://zh.wikipedia.org/wiki/%E5%B0%8F%E9%BB%84%E9%B8%AD%E8%B0%83%E8%AF%95%E6%B3%95
[2]Google 翻译: https://translate.google.cn/
[3]Deepl: https://www.deepl.com/
[4]Google: https://www.google.com/
[5]Bing: https://www.bing.com/
[6]issues: https://guides.github.com/features/issues/
[7]discussions: https://docs.github.com/en/discussions
[8]stack overflow: https://stackoverflow.com/