前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【专业技术】编程老手如何化解棘手难题

【专业技术】编程老手如何化解棘手难题

作者头像
程序员互动联盟
发布2018-03-13 15:42:20
5940
发布2018-03-13 15:42:20
举报

依然记得上一节编程课的时候,老师说过一句让我一直到现在都还记得的话“只要是软件,就一定有bug;只要是软件,他的功能就是有限的;功能越强大的软件,他的问题就越多,你所不知道问题与隐患就越多”;

当我真正开始写第一条程序,写第一个项目,伴随我的就像老师跟我说过的话的那样,有着各种各样的问题;想必所有做程序员的各位朋友们,也有这样的感觉,只要涉及到编程那么伴随着他的就是各种想不到的bug,不管是大的,小的,有头绪的,没有头绪的不管什么问题吧,只要是问题我们都是要去解决!

那么问题来了,碰到了我们会解决的有头绪的bug我们就感觉很轻松没有压力,但是碰到我们没有头绪的bug怎么去解决呢?不知道朋友们是不是都尝试过被不知道怎么解决的bug弄到头大,弄到感觉世界没有明天了,弄到忘记了自己的吃饭的时间,下班的时间,甚至是睡觉的时间,但是就是解决不了 一天 两天 三天,甚至一个星期都过去了,问题还是一点进展都没有;这其中的滋味相信是程序员的多少都经历过,只不过有一部分程序员经常有,但有的程序员可能就比较少,这个跟各自的岗位有关;

废话不多说下面就跟各位朋友分享一下小编碰到这种bug是怎么一步一步的解决的;

第一步:bug复现

通常来说测试人员测试出一个bug,报给你解决的时候,你一看bug的描述,如果说你在脑袋里知道是怎么回事了,那么就不能算是没有头绪。怎么算是没有头绪,就是完全不知道为什么会出现这样的问题;那么第一步就是在自己的电脑复现出已经出现的bug,如果自己用测试人员的方法,可以在自己的电脑上复现出bug的现象,那么就可以很直观的看到什么样的操作会走什么样的代码,什么样的交互会走什么样的代码逻辑,这样第一个解决问题的小小的头绪就很快就出现了;

第二步:广撒网,多测试

在第一步的时候我们已经在本地复现出bug的现象了,也简单的了解了一下,出现的bug可能涉及到的代码逻辑;那么下一步就是在自己的写的程序或是别人写的程序中定位bug的地点,具体的要怎么去定位呢?

小编的方法通常就是两种办法不过屡试不爽,我想大多数人也是这样,第一个方法就是打断点看堆栈,另一个方法就是打印log(这些方法可以让你更好的确定问题出现的位置,已经更好熟悉代码逻辑)做好了这些之后,就是一系列的定位过程,这个过程就是看一个程序员的能力,经验,等等多方面的综合表现吧,能力越强的可能速度越短;做过这步之后,顺利的话就可以知道出现问题的具体位置了;好的话可能已经知道怎么解决了,但是不好的时候也有,发现出现问题的源码自己看不懂,运用的知识也不是自己的能力范围之内那么怎么办?

第三步:知识定位,择优选择

知道代码出问题的位置后,如果知道怎么修改来解决这个问题,那么就要想想要怎么很好的修改这个代码可以让自己的程序更加的健全,也要想想修改这个代码后会不会影响其他已经正常运行的代码;那么问题就可以圆满的交公关闭bug了;如果不知道怎么来修改这个代码,那么情况可能更复杂一点了,首先看看能不能知道这个代码用的是什么知识点,如果知道就要好好分析代码的上下文,如果不知道知识点那么就要先弄懂是什么知识点了,可以自己弄懂最好如果自己弄不懂就要问了;这个过程可能还是有点煎熬但是经过这一次之后,以后再碰到这个知识点你就不会再这样了,这就是成长,这就是经验,在通俗的说这就是钱呀;

以上就是小编碰到不会的bug分析的过程,这个流程在小编这用的很成熟了,一般再难的bug,比如内核级别的bug,代码根本就不是自己写的,甚至根本就看不懂写的什么,我用这个方法最慢也就三天的时间,当然说是出现问题这一块说是一清二楚也不可能,不过应付比较着急的项目没有问题的;好了就说这些朋友如果有什么好的解决bug的流程也可以留言分享一下,感谢各位的阅读

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档