关于程序猿怎样降低程序Bug的若干建议

毫无疑问,程序猿是善于思考问题的一族。

一个程序的编写都是通过:思考、设计、编写、调试、測试以及执行这些主要的阶段。

  但大部分程序猿都有一个问题就是不太愿意測试自己的代码。

他们草草的调式完毕以后就觉得工作结束,測试那是測试人员的工作。

  依照理论上。假设代码存在问题。那么測试人员和终于的用户肯定能够发现这些 BUG ,而等待哪个时候再返回来查找问题究竟错在什么地方确实代价不小,其代价有:

  1. 影响了程序猿自己的声誉

  2. 影响了产品的质量

  3. 影响了客户的信任度

  4. 这个时候再 DEBUG 难度增大了很多。

  大的不说,就说多自己声誉的影响吧。假设你的程序总会有这样那样的 BUG ,你得到收益会降低,即使你写了非常多代码。

  事实上最后一点也非常重要;在我们面对一块代码的时候。什么方法都好办,但假设将这块代码防到庞大的系统中之后。简单的问题也难以被马上找出来。为了自己考虑,节省自己 DEBUG 的时候,我们应该让我们的程序尽量没有 BUG 。

  那么怎么样才干保证自己的代码没有 BUG 来?

  程序猿必须克服一些自身的致命缺点才可以从根本上解决问题。

那么这个问题是什么?前面我们已经提到。程序猿对自己的代码都非常宽容,觉得那是正确的没有问题。实际上这样的想法比較正常,程序是通过程序猿思考和设计之后才写出来,程序猿不会将自己觉得不对的东西写到代码里,而到这个时候都一直如果程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序猿在对待其它程序猿时候的态度就非常好,带着一种挑剔和学习的态度;但一旦对待自己的代码就非常难这么做;这就是最致命的。程序猿也必须对自己的代码带着挑剔和学习的态度;这个基础是如果自己的代码是错误的,然后须要做的是怎么样证明自己的代码是正确的。程序猿自身可以在程序生成的每一个阶段做这些工作:

细致的设计、编写代码时、单元測试(重要)、功能測试。

  1.细致的设计:这个的细致是说在程序猿编写代码之前,其必须对代码的整个结构以及逻辑结构有明白的清晰的了解,仅仅有这个时候才干够去写代码。这里没有谈到文档。但我说到了一定要清晰的思路,但清晰的思路不是每一个人都能够在脑袋中直接形成的,非常多人都是普通人,没有办法在脑袋瓜中把全部问题都想清晰,那么就记下来,特别对于复杂的逻辑(这个时候画点时间是值得的。必须保证我们对自己的程序有清晰的轮廓后才干開始动手写)。

  2.编写代码:对于没有把握的代码。比如:新设计的算法,最好保证其正确性。

能够单独将这部分測试,这能够让代码模块化的同一时候又保证了代码的正确性。一句话:少量的代码保证质量还是比較简单的。

  3.单元測试:单元測试的重要性不在赘叙了,如今也有很多工具能够帮助程序猿并降低工作量。

  4.功能測试:程序猿保证自己代码质量的最后一关;为了做这种工作我们可能必须写一些代码来測试,甚至是測试工作。

使用大量的 CASE 来測试,以及错误的 CASE 。这里和測试人员的測试不同之处在于:仍然让程序猿的注意力放在其自己的代码范围内。减小了排错的难度。

  *.假设你通过了以上的步骤都找不出你程序中有不论什么问题的话。那么我想你的程序可能须要的不仅仅是REVIEW了,你可能须要抛弃它,依照之前的思路或者换个思路又一次来一遍,这个过程想想也许非常麻烦。事实上当你真的静下心来去做时,你会发现你得到的不仅是一个没有bug的程序。很多其它的是你根本意想不到的收获。并且这次的代码写的远比第一遍更顺利,更快。更健壮。

it‘s unbelievable.

  前面说道了程序猿对待别人代码的态度是挑剔和学习的态度。所以让其它程序猿来 REVIEW 你的代码也是检查程序有没有逻辑错误的非常好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。

  作为一个好的程序猿必须有以上的习惯。以及对待自己代码象孩子一样。我们要爱惜我们的代码。同一时候也要让代码走正确的路。

时间: 2024-12-21 05:58:56

关于程序猿怎样降低程序Bug的若干建议的相关文章

关于程序员如何减少程序Bug的若干建议

毫无疑问,程序员是善于思考问题的一族.一个程序的编写都是通过:思考.设计.编写.调试.测试以及运行这些基本的阶段. 但大部分程序员都有一个问题就是不太愿意测试自己的代码.他们草草的调式完成以后就认为工作结束,测试那是测试人员的工作. 按照理论上,如果代码存在问题,那么测试人员和最终的用户肯定可以发现这些 BUG ,而等待哪个时候再返回来查找问题到底错在什么地方确实代价不小,其代价有: 1. 影响了程序员自己的声誉 2. 影响了产品的质量 3. 影响了客户的信任度 4. 这个时候再 DEBUG 难

程序猿生存定律--程序人生的出口

程序猿的人生出口 非常多人非常想知道自己的未来是什么样子的,迫切到一定程度甚至会找算命先生. 假设并非想得到一个精确结果,这事儿事实上并没有想的那么难.程序猿的人生看起来五花八门.能够是Windows系,能够是Android系,能够是iPhone系等等.但假设为之做点抽象,那就会发现人生出口的类别事实上不多.接下来我们就结合样例来看看程序猿的人生中最可能的几个出口.这些出口里有大部分人的未来景象. 1 成就超一流高手 袁峰先生是<Windows图形编程>一书的作者,也是一位纯粹的程序猿. 从袁

用程序猿思维、程序设计师思维两种方式写求斐波那契数列的方法。

//用Java实现斐波那契数列(Fibonacci) public class Test { public int f(int n)//n代表第几个数字.程序返回它相应的值 { return n>2?f(n-1)+f(n-2):1;//看似如此优雅的一句程序 } //程序设计师的思维:会重构上面的代码.让他们更易读.推荐!! ! public int fibo(final int pos) { final int num; if(pos>2) num = fibo(pos-1)+fibo(po

男程序猿和女程序猿的网恋(一)

我和他2016年的相识,相知,相恋,相见…… ①相识      我记得自己是在技术群里求助问题,他帮我解答 ,我并不能理解,就私聊他,他热情帮我解答,这样一来二去,我们变成志同道合的朋友…… ②相知       我在北京,我做HIS系统,他在重庆,他做MES系统,我们都是计算机专业才出来的实习生:之后我们在交流中,知道他的爱好喜欢收藏鞋,摄影,口琴,高达模型,喜欢看书,给我塑造一个文艺小青年程序猿,让我更有兴趣了解他.     之后我们谈论更多的话题是技术问题,大多数都是我不会,他教我,而且很有

【转】老程序猿给新程序猿的13点建议

展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们. 01. 自己的户口档案.养老保险.医疗保险.住房公积金一定要保管好. 由于程序员行业每年跳槽一次,我不隐瞒大家,我至少换过5个以上的单位,这期

程序猿写的程序将如何打包成安装包(最简单)

一.准备工作:先下载一个Inno Setup编译器,这里我用到的是5.3.3中文版的. 下载地址:http://www.skycn.com/soft/5625.html 软件介绍: Inno Setup 是一个免费的安装制作软件,小巧.简便.精美是其最大特点,支持pascal脚本,能高速制作出标准Windows2000风格的安装界面,足以完毕一般安装任务.该软件用Delphi写成,其官方站点同一时候也提供源程序免费下载.它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无

做程序猿的老婆应该注意的一些事情

今天来说说一位女青年的老公以及他们的事儿.如有雷同,纯属巧合. 十一年前我和程序猿第一次见面,还是大一军训期间.我甚至不确定程序猿是否记得那是第一次见面.当时不小心装伪文艺参加了吉他社,想借一本吉他入门书,然后同在吉他社热心的海哥说他一同学有,就带着我去拿书了.于是我们第一次"见面"了,我只看见一个对着电脑,佝偻着背的背影--严重怀疑程序猿根本没抬头看一眼那个已经晒得像反转熊猫一样的妹子,因为他递过来书以后,又迅速投入到了电脑的怀抱,相对应的,我也不记得他长什么样了. 我从来没有读懂过

漫谈程序员系列:无BUG不生活

我决定谈一谈世界上最著名的虫子:BUG ! BUG 困扰了一代又代的程序员,不论是杰出的计算机科学家,还是像 Linus Torvalds(Linux内核创始人) .Bill Joy(传说三天写出BSD的前身,vi和csh的作者)等神一样的传说,抑或你我芸芸程序猿,都是 BUG 骚扰的对象. BUG 是绝对狂热的好战分子,具有永不停歇的战斗欲望,它潜伏在程序员的周围,一双小眼贼亮贼亮,在你百密一疏时出其不意一击奏效.而无论你是钢筋铁骨,还是羊脂玉体,只要被这只虫子袭击(看过<木乃伊>的话,对圣

漫谈程序员系列:3D打印能打印出程序猿吗

首先声明,本文是一本正经的胡扯,绝不是随随便便的胡扯,请您不要随便攻击我胡说八道,我要重复星爷在<喜剧之王>里的台词:其实,我是一本正经的喷子. 3D打印的定义 关于3D打印,下面是来自百度百科的解释: " 3D打印,即快速成型技术的一种,它是一种以数字模型文件为基础,运用粉末状金属或塑料等可粘合材料,通过逐层打印的方式来构造物体的技术.    3D打印通常是采用数字技术材料打印机来实现的.常在模具制造.工业设计等领域被用于制造模型,后逐渐用于一些产品的直接制造,已经有使用这种技术打