27岁,山西运城人,职业电商经理人,前端开发工作者,从事过网站建设、网络推广、SEO、SEM、信息流推广、二类电商、网络运维、软件开发,等相关电商工作,经验较为丰富,小米技术社区致力于为广大从事Web前端开发的人员提供一些力所能及的引导和帮助 ...[更多]
E-mail:mzze@163.com
Q Q:32362389
W X:xiaomi168527
27岁,山西运城人,职业电商经理人,网络工程师兼运维,从事过运营商网络建设,企业网络建设、优化。数据中心网络维护等通过,经验丰富,座右铭:当自己休息的时候,别忘了别人还在奔跑。 ...[更多]
大于花一样的年龄,河南郑州是我家,2010年在北京接触团购网,2011年进入天猫淘宝一待就是四年,如今已经将设计走向国际化(ps:误打误撞开始进入阿里巴巴国际站的设计,嘿嘿)五年电商设计,丰富经验,从事过天猫淘宝阿里各项设计,店铺运营,产品拍摄;我将我的经历与您分享是我的快乐!座右铭:越努力越幸运! ...[更多]
E-mail:97157726@qq.com
Q Q:97157726
了解问题→定位问题→分析问题→解决问题→验证问题
在解决问题之前一定要弄清楚具体的问题是什么,看到过太多纠结了很久但发现自己所解决的问题并不是测试描述的问题的情况了;
1.借助搜索引擎:遇到有明显的异常信息,且自己并不熟悉为什么异常时,最高效的解决方法是借助搜索引擎,百度谷歌均可,全世界这么多开发人员,你遇到过的大多数问题其他人也遇到过;
2.打印调试法(日志调试法):这是最笨但最有效的办法,人会说谎、断点调试可能会说谎,但日志一定不会说谎;
3.二分排除法:当你遇到随机问题、帮助他人解bug或者遇到自己不熟悉的代码时,通过屏蔽一部分代码,运行观察问题仍然存在,如果存在则进一步分析屏蔽一部分代码,直到定位到有问题的具体位置为止,这种方法能解决工作中的很大一部分疑难杂症;
4.小黄鸭调试法:当你向某个对象陈述你的思路时,往往会有意想不到的结果,哪怕对方并不是一个生物;(有很多程序员桌前放一堆玩偶,向其倾诉自己的思路等等)
5.断点调试法:受限于效率不高以及在多线程环境下断点调试并不灵,有必要时才考虑用这种方法;通常可以使用打印调试法来代替;
6.线上求助:包括论坛提问、微信群提问等;不到万不得已不要用这种办法,在有限的圈子里面,你遇到的一个具体技术问题很有可能其他人并没有遇到过,多数时候问了也是白问,但有时候也可能是一种有效的方法。
7.冷静法: 思维走入误区了,那就放放吧,转手忙点其他的吧,过会在回来想,可能就豁然开朗,找到问题了。
8.随缘法:通常用在逻辑型的BUG上,代码瞎改,瞎(非真的胡乱整)调整位置,说不准就好了。
9.万能解决法:重启软件-重启服务器-重启电脑-换新电脑-重启地球
10.重构法:重头到尾写一遍。
1. 确认Bug是否在本地可以重现
2. 确认Bug在哪一段代码中。
3. 去除掉所有无关代码,只去调试和Bug相关的代码。
4. 和之前正常运行的版本对比,尝试恢复到之前可以正常运行的代码。
5. 重新写一个小Demo,确认是否可以正常运行,可以的话,移动代码到原有的代码中。
6. 如果本地无法重现,打日志,观察线上行为。
7. 重启一些相关东西。
8. 向大佬提问
本站内容均为小米原创,转载请注明出处:小米技术社区>> DEBUG的方法和思路