Last active
August 1, 2022 11:53
-
-
Save qyzhaojinxi/7e4e644bb4bb51ff575a to your computer and use it in GitHub Desktop.
解决问题的思路和方法 #问题 #思路 #方法
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
解决问题的思路和方法 | |
不少开发者在遇到bug或者技术难题时不能够很高效的找到解决方法,这和经验积累有关, | |
也和各自的思考方式、习惯有关系。当然也有很多人不存在这个问题。这里我用我有限的经验和想法, | |
聊一下我遇到问题时的一些思路,希望能对存在问题的各位开发者有些参考价值。看不上的可以绕走,不喜勿喷啊。 | |
一、寻找线索 | |
1.倒推 根据出现的场景,从下到上,逐层定位问题 | |
2.log或者异常捕获 最直观 | |
3.断点 对程序运行逻辑调用清晰,数据变化了然于心 | |
4.借助工具 reval图层工具 log宏定义 动态分析内存 各种插件 终端命令(例如寻找无用的图片) postman charles等,具体问题寻找相关工具, | |
情况太多,不逐一而述。 | |
二、分析问题 | |
1.控制变量法,排除干扰 | |
2.分析可能导致问题因素,逐一尝试(大胆设想,小心求证) | |
3.准确描述场景(很重要)一句两句话描述 | |
三、解决方法 | |
1.网络搜索 | |
(1)找准关键词: | |
①关键词尽量短,但能够说明问题。 | |
②关键词可以是选取log或者异常中关键部分。 | |
③关键词可以有几个线索关键词组成,不同线索之前尽量用空格格开 | |
④关键词要多次调整,根据结果增加或者去掉关键词。 | |
(2)找准搜索引擎 | |
①百度: 善于利用百度就能解决大部分问题了,毕竟你遇到的问题可能很多人遇到过,百度也符合国人搜索习惯。不过你得找好关键词,不然会搜索到一 | |
大堆不相关的东西。当然,现在大多数开发者首选谷歌的。 | |
②谷歌: 谷歌好处不多说,各种博客,问答网站相关的都能搜索到。 | |
③http://stackoverflow.com/ 问答网站,现在已经离不开了,解决了我的大部分难题。无论是问题本身,还是顶的最高的答案,还是其他的答案评论,都 | |
有可能是你想要的。④github和gisto上碰碰运气。 | |
(3)有耐心,细心,链式搜索,注意只言片语。 | |
① 很多问题是不可能一下子就被直接解决的,这个时候就要有耐心,和足够 的细心。 | |
②搜索结果中要注意一些只言片语,或者别人给的外链。 | |
③间接搜索,尝试搜索一些问题的前提条件,或者上一层级问题。 | |
(4)当遇到陌生bug或者技术难题怎么快速定位解决 :把功能描述精简到一句话翻译成英文然后Google(盗取我一哥们所说).当然中文和百度也是要尝试 | |
下的。有兴趣的去学习一下搜索引擎使用技巧。 | |
2.请教同事 | |
(1)不要舍近求远,同事离你很近,不妨问一下,说不定一下子就解决了,或者互相讨论研究一下换换思路也是不错的。 | |
(2)不要局限于语言和开发环境,可以去其他开发语言同事那找找思路。当然,这种前提是你遇到的问题不是该语言或者开发环境特有的。 | |
3.论坛或者qq群请教 | |
①准确描述场景,这个真的很必要,有的人往往说了很多,说不到点上,一定要一两句话描述清楚。可以同时将自己的一些猜测和尝试的方案说一下。必要 | |
的时候,提供图片,甚至是精简之后的demo。 | |
②认真看回复。别人没有义务一定会帮你。那些肯回复你答案的,一定要认真去看,很多时候其实别人已经提供了解决方案,你看不到,只顾自己在那说, | |
或者自以为是的过滤掉了。 | |
③还是stackoverflow:不妨开个问题吧,大家一块讨论下,众人拾柴火焰多,全世界那么多开发者呢。 | |
四、保持心态和清晰思路 | |
学学阿基米德泡个澡,或者凯库勒睡个觉,说不定你就梦到了呢。换个心情,保证思路的清晰,不然头昏脑胀的,更是解决不了问题。我自己比较笨,当年 | |
学汉诺塔的时候没理解,就一直想着,还是没想明白,最后没心没肺地看了会儿美剧就去睡觉了,结果第二天早上竟然思路清晰,很容易就把代码写出来了。 | |
五、开发中如何避免问题 | |
1.需求明确,理解(最重要) | |
2.难点提前调研 | |
3.功能拆分、难易程度预估、时间预估、计划制定 | |
4.数据异常处理预判 | |
5.及时测试,验证数据和展示 | |
6.细心、命名规范 避免拼写错误(很重要) | |
7.代码注释 | |
8.缩进和格式化代码 易于理解逻辑和定位代码 | |
9.不要认为自己的代码没有bug | |
善于从bug中分析问题也是一种能力。 | |
我这里只是提供了一个思路,没有任何具体方法,毕竟经验能力有限,虽然也遇到过不少问题,但太懒,也没有把案例都记下来,而且也不一定适用。 | |
希望能帮助到需要帮助的人。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment