如何来减少C语言编程中的bug?

呵呵呵,提到了bug这件事我真的是哔了狗了。经常自以为写得天衣无缝的一段程序,就是运行出错,真是脑水都要气爆出来。而且有些bug它就是那么调皮。找你几天你都找不出来。(自己写的代码,自己真的太特么难找出bug了)这就是为什么公司要成立测试部门了。让别的人来找你的bug还靠谱点。anyway。

我会编程,但是我个人真的不喜欢编程。可是我有这么一哥们儿,编程就跟做爱一样,是有激情有快感的。但是,伴随着编码的快感,bug 总是如影随形,开发无止境,bug 随身行。对于他这样的人,我感谢bug。有点儿扯远了。总之关于bug真的是有很多话想说。

首先来看看遇到bug各种程序员是怎么反应的:

理性型:这个 bug 能复现吗?

自负型:这不可能,在我这是好好的。

经验型:不应该,以前怎么没问题?

幻想型:可能是数据有问题。

无辜型:我好几个星期都没碰这块代码了!

乐观型:只需要改一行代码,不会影响其它程序的。

实践型:你重启一下服务试试。

但是无论是哪一种程序员,遭遇 bug,内心都是崩溃的,头皮马上就发麻。特别是在公司里面:产品经理或测试人员在使用或测试产品的过程中抓到你的一个 bug 之后那种如获至宝的表情和欢呼声,绝对会让程序员的心久久不能平静!!扯了这么多,最重要的我们来聊聊bug可不可能不存在。答案肯定是hell no! 学过点儿测试的人都知道如果有道对错题问你测试的目的是找出程序中所有的bug。那么正确答案肯定是叉叉!

关于减少bug,觉得也是一些理论上的东西罢了。就我自己来说,没什么好的办法,只能下笨功夫,在编码之前尽可能把所有的可能性都想清楚,然后认真做好设计。每次自己程序出现的 bug 案例,记录到 bug 库里,检查代码的时候逐一对照,确保不会犯重复的错误。

小编推荐一个学C语言/C++的学习裙【 六六六,二九五,四九八  】邀请码凌云,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

下面是我整理的一份聊减少代码的内容:

减少 bug 的第一步,提升自己的程序员素养,努力不给自己和别人找麻烦。、

另外,团队协作也很重要,前期的技术方案和设计评审、代码审查,对减少一些重大的错误和弱智的 bug 都非常有好处。与有经验的程序员一起评审一个技术方案,常常会发现一些重大的问题,比如为什么用缓存,为什么做持久化,高并发下怎么应对,这部分设计支持线程重入吗,这个循环为什么设置成10分钟,这个超时设置为什么是60秒,传输协议加密了吗,等等。

很多方案可能会仅限于解决当前的问题,但有经验的程序员却能透过时间的重重迷雾,发现这个方案在未来某个时间点可能爆发的问题。这就是评审的力量。国内很多团队的技术人员内心是抵触代码审查的,他们常常想,在这个国家我们已经被审查的够多了,就不要再自己审查自己了,然后很多 bug 就产生了。没有代码审查是不可思议的。在大公司的研发流程里,Code Review 是必不可少的一个环节,只有别人帮你做了 Code Review 并在代码上「打了戳」,你的代码才能进入 Code Base。在 Facebook,如果你 Review 了别人的代码,如果那个人休假了,你就要接手他的代码,出了任何问题都要唯你是问。

事实上,Code Review 才是真正的白盒测试,没有经过代码审查,仅凭测试很难保证代码质量。测试通过了但没有经过代码审查的代码仍然会出各种问题,这样的案例比比皆是。只有当另外一个人读了你的代码,并且表明能看懂时,这些代码才有真正有了鲜活的意义。代码审查的意义就是,在你的代码库合进代码库之前,至少有一个人读过你的代码。

很多人在做代码审查之前会调研大量的代码审查工具,就像一个人在跑步之前,要先准备好跑鞋、袜子、压缩裤、压缩上衣、鼻贴、眼镜、口罩、导汗带、魔术头巾、各种手表、冷却喷雾、肌内效贴布……然后一个月过去了,你问他跑了几次,他会很扭捏的告诉你,髌骨带还没有到!没有工具一样可以做代码审查,你只需要偏转身体,在另一个程序员不忙的时候拍拍他的肩膀说,「来,看看我的代码,你能看懂吗?我准备把它们提交到代码库里」。然后阐述你的思路,倾听他的建议,并根据这次讨论的结果决定,是修改一下,还是继续提交到代码库。

不要小看这短短的20分钟,它可能会帮你避免的一些隐藏的和弱智的 bug。很多团队都是因为代码审查过程或工具过于复杂放弃了Code Review,典型的因噎废食,其实使用 less、diff 和 git 等工具,基本上就可以做一次完整的代码审查了。如果你过于依赖工具和过程,那说明你并没有抓住问题的核心。总的来说:重视团队协作,进行方案评审和代码审查。做到这两点,你会发现,代码中的 bug 会越来越少的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,060评论 25 707
  • 戊戌年的春节又在一阵喧嚣中来了。 尽管在四年前父亲去世后我就对春节有了无比的憎恨,而且每到岁末我都会把自己逼到墙角...
    勇者不怒阅读 230评论 0 0
  • 大家的生活水平在不断地提高,然而却还是有很多人患上了鼻炎,影响了正常的工作和学习,因此做好防患工作是很重要的,那么...
    欧贝里斯克巨神兵阅读 307评论 0 0
  • 伴桨摇,话字别,隔岸弦勾纤指落,杏雨初吻素衣郎。 抚琴吟,前尘辞,塑城烟熏笙箫起,暮雪血染孤魂归。 (因烽烟起,王...
    夏默xl阅读 252评论 3 10