目录
1.出错是不可避免的,千万别太过于烦躁,这于解决问题无益,重要的是沉下心来找出错因。
前言
程序员在敲代码时总是敲时一时爽,bug找半天,找bug比敲代码花更多时间常常是屡见不鲜的,那我们该如何尽可能的减少bug,并且在出现bug时快速找到并改正呢?以下是我的个人经验,分享给大家,希望对你有所帮助。
第一阶段---源头上减少bug
1.对代码的逻辑要做到非常清晰
首先,在写代码阶段,我们就要尽量避免出现bug,那要如何避免呢?一方面,我觉得程序员要对自己写的的函数功能,代码逻辑等非常清楚,很多bug的产生都是因为对代码逻辑的认识不清晰。在另一方面,正所谓,磨刀不误砍柴工,先得有清晰的思路再开始动手,千万不要求快而盲目开始写,这是一种低效且漏洞百出的行为,应当避免,好的程序员都会在写代码前构思好大致框架,例如写伪代码,这样做可以既快又减少出错。
2.在一些易错的地方要格外注意
程序普遍存在一些易错点,比如说除数为0、文件打开操作失败,缓冲区溢出,使用未初始化的指针,等等。这些不是通过对代码逻辑有清晰认识就能解决的,而更多是一种素养问题,一种习惯问题。
第二阶段---在调试时迅速找出bug
基本原则
1.出错是不可避免的,千万别太过于烦躁,这于解决问题无益,重要的是沉下心来找出错因。
一般来说,这又有两种方式
1.通过调试工具进行调试,查看出错点
2.纸面上列出程序的各执行阶段,逐一排查可能出错的地方,并且采用控制变量法和分治法(即先把无关的代码注释掉,单独考察一段代码),这种方法看起来low,实则非常高效,值得一试。
2.不要太过于死板,合理借助外部手段
不知大家有没有遇到过这种情况,有时候找bug太过起劲了,最后忘乎所以,无所不用其极,似乎忘记了自己是在找bug,完全是无目的,低效地在找bug,这时强烈建议放下手中工作,饶过自己的大脑,走到室外呼吸几口新鲜空气,让大脑放松放松也无防。
一般来说,当你找bug20分钟还没有思路时,推荐以下两种方法
1.拒绝固执,改变解决方案,条条大路通罗马,你完全可以换一种解决方案,或许另一种方案更好也未可知。
2.网上查找,你可以查找你程序出现的问题,也可以查找实现这种功能的替换方案,这时两种殊途同归的思路,望读者明知。
3.研究别人的代码,这样往往可以引起我们的思路
第三阶段---复盘
总结出错原因,发掘出错的本质是什么,发出夺命三连问:“为什么会犯这种错误?”“我是如何解决的?”“下次要如何避免类似错误的发生?”,相信我,这会对你有所帮助的。
结语
避免犯错是不可能的,即使是最优秀的程序员也会犯错。但关键在于我们如何在犯错后总结教训,有所进步,这是我们要做的,唯有如此,才能日臻完善,我相信我们犯的每一个错误,都是我们成为顶尖程序员的垫脚石。