关于如何解决程序bug的系统性总结

目录

前言

第一阶段---源头上减少bug

1.对代码的逻辑要做到非常清晰

2.在一些易错的地方要格外注意

第二阶段---在调试时迅速找出bug

基本原则

1.出错是不可避免的,千万别太过于烦躁,这于解决问题无益,重要的是沉下心来找出错因。

一般来说,这又有两种方式

2.不要太过于死板,合理借助外部手段

第三阶段---复盘

结语


前言

程序员在敲代码时总是敲时一时爽,bug找半天,找bug比敲代码花更多时间常常是屡见不鲜的,那我们该如何尽可能的减少bug,并且在出现bug时快速找到并改正呢?以下是我的个人经验,分享给大家,希望对你有所帮助。

第一阶段---源头上减少bug

1.对代码的逻辑要做到非常清晰

首先,在写代码阶段,我们就要尽量避免出现bug,那要如何避免呢?一方面,我觉得程序员要对自己写的的函数功能,代码逻辑等非常清楚,很多bug的产生都是因为对代码逻辑的认识不清晰。在另一方面,正所谓,磨刀不误砍柴工,先得有清晰的思路再开始动手,千万不要求快而盲目开始写,这是一种低效且漏洞百出的行为,应当避免,好的程序员都会在写代码前构思好大致框架,例如写伪代码,这样做可以既快又减少出错。

2.在一些易错的地方要格外注意

程序普遍存在一些易错点,比如说除数为0、文件打开操作失败,缓冲区溢出,使用未初始化的指针,等等。这些不是通过对代码逻辑有清晰认识就能解决的,而更多是一种素养问题,一种习惯问题。

第二阶段---在调试时迅速找出bug

基本原则
1.出错是不可避免的,千万别太过于烦躁,这于解决问题无益,重要的是沉下心来找出错因。
一般来说,这又有两种方式

1.通过调试工具进行调试,查看出错点

2.纸面上列出程序的各执行阶段,逐一排查可能出错的地方,并且采用控制变量法和分治法(即先把无关的代码注释掉,单独考察一段代码),这种方法看起来low,实则非常高效,值得一试。

2.不要太过于死板,合理借助外部手段

不知大家有没有遇到过这种情况,有时候找bug太过起劲了,最后忘乎所以,无所不用其极,似乎忘记了自己是在找bug,完全是无目的,低效地在找bug,这时强烈建议放下手中工作,饶过自己的大脑,走到室外呼吸几口新鲜空气,让大脑放松放松也无防。

一般来说,当你找bug20分钟还没有思路时,推荐以下两种方法

1.拒绝固执,改变解决方案,条条大路通罗马,你完全可以换一种解决方案,或许另一种方案更好也未可知。

2.网上查找,你可以查找你程序出现的问题,也可以查找实现这种功能的替换方案,这时两种殊途同归的思路,望读者明知。

3.研究别人的代码,这样往往可以引起我们的思路

第三阶段---复盘

总结出错原因,发掘出错的本质是什么,发出夺命三连问:“为什么会犯这种错误?”“我是如何解决的?”“下次要如何避免类似错误的发生?”,相信我,这会对你有所帮助的。

结语

避免犯错是不可能的,即使是最优秀的程序员也会犯错。但关键在于我们如何在犯错后总结教训,有所进步,这是我们要做的,唯有如此,才能日臻完善,我相信我们犯的每一个错误,都是我们成为顶尖程序员的垫脚石。

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋窗7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值