程序出现bug是必然出现的情况

更新时间:01-24 教程 由 浅殇 分享

程序出现bug是必然出现的情况?

程序出现bug,既不是必然现象,也不是程序员水平有限,而是一种正常现象,只要控制到合理范围内即可。

所有的软件、框架,基本都有bug,不然也不会有那么多的小版本进行维护升级。如阿里巴巴温少开源的FastJson,目前版本已经到了1.2.72。

我们可以看一下这个版本的发版说明,也解决了不少的bug。

更有甚者,到现在还有1334个未解决的问题,诚然,也不全是问题。

再如我们经常使用的强大如斯的Spring框架,不也每隔一段时间就发布一个小版本吗?不照样有bug存在,还得发布版本来解决bug嘛。

所以,并不是程序员水平有限。

什么是bug?

bug是计算机领域专业术语,bug原意是“臭虫”,现在用来指代计算机上存在的漏洞,原因是系统安全策略上存在的缺陷,有攻击者能够在未授权的情况下访问的危害。

漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。因而这些都可以认为是系统中存在的安全漏洞。bug狭义的概念是指软件程序漏洞或缺陷,广义的概念还包括测试工程师或用户所发现和提出的软件可更改的细节、或与需求文档存在差异的功能实现等。

从bug的释义上,我们可以简单的了解到,其实bug并不可完全避免。相反,正是由于bug的出现和存在,软件才能不断的完善和升级,从而带给使用者更完美的体验。

那为什么会出现bug?

设计者考虑不全面

软件设计者在设计框架、或某个功能、接口时,未考虑到比较全面的情况。如保存个人信息时,有人在手机号项里填写了固话,而设计者未考虑全面,没有应对之策,只考虑了手机号的情况。

所以在用户填写了不符合要求的数据项时,就会出现问题。

开发者未考虑全面

比如开发者遇到需要判断用户类型的逻辑,判断了3种类型:司机、教师、医生,并且没有设置默认情况的对应逻辑。在非这三类用户如银行职员使用软件时,便会发生不匹配的异常,即bug。

测试者未测试到位

所谓测试,必须要在软件上线前,进行详细而周到的测试,并不是要完全消灭bug,而是要把bug降低到某个范围之内,如10个。当然,这就需要测试者要投入比较大的精力去设计测试用例,稍有不慎,便会漏掉某个情况,而漏掉的这个情况,就会恰巧被使用者遇到,即产生了bug。

以上都是大方面上的原因,当然,还有一些客观因素,上不得台面,为什么这么说呢,往下看看就知道了。

时间原因

大多数情况,都要求在最短的时间内,做出更多的成绩。要求你1天干完3天的工作量,说实话,这情况我也遇到过。结果可想而知,换来的效果并不理想,bug百出,客户发火,项目经理埋怨。其实,也没啥埋怨的,项目经理自己答应客户1天干完3天的工作量,然后又倒逼开发者半天就要做完,不是自找的?

说到这里,我前几年净遇到这样的情况了,多的是啥也不懂的项目经理,随意答应客户要求,包括时间要求等,可以说,害人害己。

在非常有限的时间里,要做完有限的工作量,除了囫囵吞枣,一气呵成,貌似也没有别的办法了,效果肯定不用想,好不到哪里去。

个人原因

不排除开发者马虎的因素。诚然,这个因素还占比比较大。作为程序员,严谨应该是第一要义。可有的程序员根本不当回事,以完成任务为第一要义,不管后果。这是非常不可取的。

领导原因

在程序员的日常工作中,被上司掣肘的情况时不时都会发生。更甚至,最怕遇到外行指挥内行的情况。不管会与不会,瞎指挥一通。完全要按照他的意愿来。最后,出了问题,依然是程序员背锅。

历史原因

这在旧项目中比较常见。俗话说,宁肯新造,不远挖旧。旧代码就想定时炸弹,改不好就会引起连锁反应,像大厦倾塌般不可救药。往旧代码上添加新功能,如履薄冰,战战兢兢。都已完成功能为第一要义,哪儿还管你开发原则、设计模式。

运营原因

运营搞错的情况也不是没有。前一段公司有个项目有个bug,这边一个同事修改好了之后,要求运营手工删除旧代码。结果运营就删了主类,没有删内部类。造成bug一直存在的情况,前前后后搞了好几天才解决,一直查不到原因,没想到最后是研发人员无奈登录服务器才看到的此情况,真是气煞人,也就是典型的业务能力问题,还不负责任。

其它原因

当然了,还有一些其它方面的原因,这里并没有罗列到。大家如有想到的,可以在评论里留言,共同探讨。

为啥说以上都是上不得台面的客观因素呢?因为公司和领导都是以结果为导向,从不管你是和原因,况且在他们眼里,这些都可以避免,好吧,我承认,只要花时间和金钱,真的可以避免。软件除了问题,难不成你要在领导和老板面前一直强调是谁的锅吗?当然,这场景每天不止一次的出现。

最后,不管是何客观因素,都不如修炼自身内功,保证自己层面不犯错误,才是当务之急。

声明:关于《程序出现bug是必然出现的情况》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2295186.html