怎么才能写出没有BUG的代码.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
怎样才能写出没有BUG的代码 2021-07-11 ?  1947年9月9日,美国海军准将?Grace Hopper?在哈佛学院计算机试验室里使用 Mark II 和 Mark III 计算机进行争辩工作。她的团队跟踪到 Mark II 上的一个错误,操作人员发觉是由于一只飞蛾钻到了 Mark II 的继电器里导致的。团队清除了这只飞蛾,一切恢复正常。当时的工作人员记录了这样一句日志:?First actual case of bug being found.?? 这次有名的大事,犹如潘多拉打开了魔盒,从今,程序员的世界里,bug 满天飞。 ? 世界上第一个 bug ?   在我所担当过的角色中,有一个岗位叫做 Development Manager,通常简称 DM. 记得在一次基于一款平台的二次开发项目中,由于 bug 实在太多,我们几乎拿出了一整个里程碑的周期来 debug,于是我这个DM有了新的解释:Debug Man.   没有人宠爱 bug,bug 意味着错误、不确定性、加班、交付风险,等等…… 负面的词语怎样堆砌都不冗余。任凭找个有过一、两个项目阅历的开发者,问问他 debug 的回忆,那气氛就跟上坟一样。   对于 bug,开发者的神经往往也很敏感。有个段子很好玩 —— 说的是“应当如何向程序员反馈一个 bug ” ——   你不能直接跟他说:“这里不对啊,是不是你程序有 bug 啊?”,要这么说的话,会直接被怼回来:“你丫的本人不会用吧!”。   你可以换个说法:“咦,这里好像不对,是我操作错了吗?”,这时程序员心里就一咯噔:“Shit.. 不会是我代码有 bug 吧?”   从业多年,发觉有个现象还蛮好玩的:有时候,当某个 bug 被发觉时,犯下这个错误的始作俑者会开玩笑地为本人解脱:“谁没写过 bug 啊,Windows 还有 bug 呢。” 这句托词我也用过,感觉挺好用的,就好比:梅西都能罚丢点球,我空门没进,也是可以理解的嘛。   但其实吧…… 这规律经不起推敲的。   Windows 操作系统,一款长达30多年,装机量估量都超过了地球人口数量的巨型工程,简单度基本只能靠猜。以微软公布的材料来看:   Windows 95 代码量约 1500 万行   Windows XP 代码量约 4500 万行   Windows Vista 代码量约 5000 万行   Windows 7 代码量 5000+ 万行   以 Windows 7 为例,超5000万的代码量,23个小组,共1000多人的开发团队。如此规模下产生的bug,和一个在办公室里上了1天班,写了200行代码,就闹出一堆bug,搞得项目乱七八糟的,能同日而语吗?最终再轻描淡写地来句 “微软也有 bug ”,不害臊?   所以我后来不用这句了,如此开脱,水平太low。其替代方案容我稍后再讲。 ? ?   为了对抗 bug,人们创造了各种各样的工具和手段,上至方法论,下至生产工具。越来越先进的 IDE, 简单的代码审查制度,从单元测试到集成联调,再配上 beta 版,试用,公测,等等。凡此种种,其目标无一不是毁灭 bug 。可这些琳琅满目的处理方案的存在,反倒证明白一个悲剧:人类,实在是太简约犯错了。   假如说凡事都有正反两面的意义,那么 bug 的正能量就是硬生生培养了大量就业机会,进而维护了社会稳定。   那么,为什么我们总是无法避开 bug 的产生?我们能不能杜绝 bug ?   答案当然是不行能了。由于那样一来,程序员的日子岂不是太温馨了?不符合苦逼的定位。而且,我们所处的这个世界,但凡越是高呼要毁灭的东西,越是会普遍地存在。就像苍蝇、蚊虫、污染、犯罪、战役,不一而足。   依据常识,阅历越丰富的老手写出来的代码,一次通过的几率更高,比如他们思考得会更周全,对特别的推断和处理更老练,边界条件把握得更精确,等等。所以我们可能会幻想:是不是只需我们足够认真,并努力磨练技艺,通过让一部分码农先老练起来,然后实现共同老练,最终就可以达到全世界开发者联合起来毁灭bug的大解放了?   很圆满,这只是一个治标不治标的思路,由于bug是有阶级的。老手们的bug相对少,只是低级错误少,他们也会遇到bug,而他们的bug,往往都是一眼蒙逼的难度系数N.x的难题,不发生在代码层面,大多在业务层面,甚至需求设计层面,或者直接是一些不行抗拒因素(做过政府项目吗?)。总之,萌新有萌新们的秀逗,大叔有大叔们的短路,老杆也会有本人的滑铁卢。   bug 这个概念的起源,就预示着它的不行避开性。世界上第一个 bug 是一只飞蛾,这剧本,谁能料到?某种意义上说,bug 就是不行预见的错误,能被预估并且提前做好预备的,那叫 exception, try catc

文档评论(0)

liuxiyuliuxingyu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档