程序员快速处理代码bug的5大技巧

不管是项目团队出现了bug,还是前辈留下的代码出现bug,这个锅反正程序员是背定了。

不少的程序员被代码虐杀的痛苦万分。但从积极的方面来看,代码bug也是绝佳的学习机会。

处理bug能力重要性不言而喻,通常也是面试的考察范围。

下面w3cschool给小伙伴们分享5个处理bug技巧:

0、二分法定位

二分法定位是比较常用的bug处理技巧。

通过二分法,即把程序逻辑一点点注释掉,不断地进行排错,完全能把问题可能出现的范围缩小。

二分调试大法每次遇到棘手的bug,基本上都能解决,堪称是程序行走代码江湖必备秘技。

1、IDE自带的debug功能

IDE可以用查看一些复杂数据结构的赋值,debug效果也是杠杠滴。

2、讨论

处理bug的过程,最难的不是怎么解决问题,而是如何定位代码的bug。

一旦我们找到了 Bug,解决方案就呼之欲出了。

我们有时候不妨采用和同事讨论的方法,尽管他未必熟悉代码,但是每次遇到棘手的bug。

特别是处理比较棘手的bug,有时候是没有必要孤军奋战的。

3、print

Print大法即通过这个函数输出函数中值得怀疑的变量的值。

事实证明,大多数程序用这个方法都是相当有效的。

4、重写一遍

大部分的bug,其实都是typo。如果你觉得代码实在是一团糟,那么推翻重来未必不可。

要想不被万恶的代码虐杀,我们在必要的时候,也可以使用必杀技—重写代码!

 


原文发布时间为:2017-10-29

本文作者:佚名

本文来自合作伙伴“51CTO”,了解相关信息可以关注。

时间: 2017-11-01

程序员快速处理代码bug的5大技巧的相关文章

Java程序员快速入门Go语言

这篇文章帮助Java程序员快速入门Go语言. 转载至 开源中国社区. http://www.oschina.net 本文将以一个有代表性的例子为开始,以此让Java程序员对Go语言有个初步认识,随后将详细的描述Go语言的各个构成模块,最后以一个例子来讲解Go语言与Java语言的不同点.   先来认识堆栈(例子) 为了满足大家的好奇心,我们将开始于一个麻雀虽小但五脏内全的例子,这个例子将是Stack.java的Go语言版本. 01 //实现堆栈的包集合 02 package collection

当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的

英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说"这段代码不言自明"?你的同事的这句话的实际意思是这段代码不需要写注释. 你也许注意到了,很多时候,程序员所说的话的字面意思和其真实的意思是完全不同的.不用惊异,下面你将很快知道这些暧昧的短语和其深层次的意思都是什么. 最近 Imgur 上出现了一张图片,里面列举的程序员的一些专业术语和其含义,它能很好的帮助你理解这些话的真实意思.这里是对其中的精华进行的总结. 典型的程序员之间

C++程序员快速学习C#---(三)完

c++|程序|程序员 八.类 对于面向对象语言来说,类是重头戏,C#中类的使用和C++中类似,在细节方面有些差别. 首先来看一个C#的类的例子: 例: class myclass:mybasicclass   //注意基类不需要写限定符     {         private int a;         public int num()          {              return 0;          }     } public class mybasicclass 

程序员拼死写代码:老板会因此感谢你们吗

程序员热衷于长时间地工作.我想说的是,你就承认吧,你的工作/老板并没有让你这样做,你自己要这样做而已.当然,我知道,也许并非所有程序员都喜欢长时间的编程.不过肯定的是,随着加班成为业内的普遍现象,至少一半的程序员必须喜欢加班,不是吗?我早已听惯了以下这类借口:"不,不是那样的,我们只是喜欢炫酷的技术活,而且不想遗留未解决的问题.实际上,加班是一件好事,它让我们变得出色!" 我认为,你不能只见树木,不见森林.从某个角度来说,你这样做并非为了自己,而是为了"某个人".无

如何处理前任程序员留下的代码

作为软件工程师不可避免会遇到的一个场景是:我们在改变或添加一个功能到不是我们创建的.我们不熟悉的.与我们负责的系统部分无关的代码中时,会遇到麻烦.虽然这可能会是一个繁琐而艰巨的任务,但是由于使用其他开发人员编写的代码有很大的灵活性,所以我们可以从中得到大大的好处,包括增加我们的影响范围,修复软件腐烂以及学习我们以前不了解的系统部分(更何况,还可以学习其他程序员的技术和技巧). 考虑到使用其他开发人员编写的代码既有其厌烦之处,又有其优势所在,所以我们必须小心不要犯一些严重的错误: 我们的自我意识:

#情人节#“会玩”的程序员:爱代码爱机车也爱...(单身汪自觉避让)

欢迎点击阅读MongoDB的技术文章和相关专题: 深度解读Facebook刚开源的beringei时序数据库 全球最热门的NoSQL系统--MongoDB技术实践与探索 当物流行业遇见MongoDB 专题<阿里云技术专家带你探寻MongoDB技术内幕>相关阅读: MongoDB复制集原理 MongoDB Sharded cluster架构原理 MongoDB请求处理流程 呆板,万年宅,交流障碍,没谈过恋爱--这是你对程序猿的认知么? 今天故事的主人公,是一名阿里云程序yuan.叶翔,男,身高一

程序员远程斗代码!网页版Skype推出内置实时代码编辑器

Skype Interviews 目前支持其中流行的编程语言,C.C++.C#.Java.JavaScript.Python 和 Ruby.它还支持代码高亮显示,还能够自动检测代码语法错误. 网页版 Skype 最近推出了一个新功能 Skype Interviews,它可以在窗口显示实时代码编辑器,一边写代码一边聊天,方便程序员进行视频面试或者远程教学,不用再多个窗口间频繁切换.目前还是预览版本. Skype Interviews 需要运行在 Microsoft Edge 或者 Google C

PHP程序员不应该忽略的3点_php技巧

最近发现很多的PHP程序员,尤其是学习还不是很久的,都不知道PHP的精华所在.Perl当年如何在商界出名?其强大的正则表达式.而PHP呢?他是一门从Unix下发展起来的语言,当然也就继承了Perl的很多特点,同时C的优点都有.快速.简洁.明了,尤其是C程序员,PHP是至爱.这里,我想来写一篇PHP的变量.数组应用技巧和PHP的正则表达式.PHP的模板应用. 1.变量.数组的应用技巧 (1)很多人用得不多的数组函数.foreach.list.each.分别举几个例子,应该就能知道了.例: $dat

asp.net一个2011年入行到现在工作五年的程序员的自我怀疑,请各位大神给我指一条进阶之路

问题描述 [无以为报,100分求真实经验]我就是一个工作五年月薪不过万的asp.net程序员,这几年主要工作事项是二次开发OA系统到微信商城,然而我现在的水平,跟三年前,或者是四年前,甚至于初学者差不多,ps只会扣扣图,css只能调整下别人的,js也只是抄袭修改偶尔callback写个提示框,JQ也只是用get,post请求,SQL也只是一般基本存储过程,视图(无大数据优化处理),每天都这样重复的做着一个又一个的页面,一个又一个的功能.....感问路在何方,回头想想一无是处,我能做的,所有人都能