bug给你带来的四个好处

“大多数开发人员只是想写新的功能,他们不想使用维护和修补漏洞”。这也是大多数开发人员是错过的乐趣和好处就是发现和修复bug

每个错误都可以教你一些东西。

反馈是一个关键,它是敏捷开发的主要原则之一。单元测试和迭代开发技术更快地提供反馈。与单元测试你的代码是否有效的问题上得到反馈,和每个交付版本你可以听听客户认为的新特性。错误报告是另一种形式的反馈您的代码。一个错误的可以有许多不同的原因。一些可能性是:一个简单的编码错误(比如一个嵌套的if语句,你最终在错误的分支),或者一个错误的假设你(也许传入的消息并不总是有某些字段,所以你有一个空指针异常),或有缺失的要求(你应该回答消息以不同的方式,如果一个给定的参数存在),或客户使用软件在一个意外的(但正确),导致错误。

在这些情况下,您可以学习如何代码,它是关于你的产品或系统的作用。例如,当我在Tilgin VoIP开发产品,有一个情况我们收到了一个错误的信息,导致我们的软件循环下去。消息所包含元素使用tag-length-value编码(电磁阀)参数,长度值元素的总长度。这样你可以跳过未使用或未知元素向前跳“长度”的字节数。在这种情况下,长度值是零,所以跳过我们指向相同的元素后,指出在跳之前,导致无限循环。这个bug前,仔细检查我的代码长度值太大值会导致阅读过去的消息缓冲区。不过,在那之前,我从来没有想到,一个零长度可能是同样糟糕。

自己的代码变得更容易调试

当你花时间故障问题和修复bug,它不会花很长时间,直到你想让自己的代码尽可能容易调试。这是令人沮丧的不所有可用的信息。一个非常常见的问题是不包括动态信息的异常。例如,假设有代码,预计值范围在0 – 20。有多少次你看到一个异常,只是说“非法价值”?不告诉你如果你想找到一个bug。如果例如21日收到,应该说“非法值:21日不在范围0 – 20”。它有助于包括允许范围,肯定有助于包括当前值。当前值可能是21日或-128年或65535年。所有这些可能给你一个线索是什么导致了它,你不从一个普通的“非法价值”。甚至Steve McConnell打破这个规则在某些地方的优秀作品代码完成。例如,在第15章中有一个例子,一个意想不到的发现类型的字符,但错误消息不包括字符的问题。每次你找到并修复一个错误,你需要问问自己:我应该做有什么在我的代码不同,以消除错误避免未来再次出错吗?有什么我应该做,使这种错误更容易避免发生在未来吗?

你和客户会很高兴。

正如我所提到的,为什么我爱编码、编程的乐趣之一就是做对别人有用的东西。你得到同样的踢修复一个缺陷,但在不同的时间尺度。提供新功能通常需要一段时间,但一个bug修复可以在一个小时内完成。每个固定的错误让你感觉你是完成一些东西,这是一个伟大的感觉。有点矛盾,修复一个缺陷会使客户满意。如果没有一个错误首先,不会有需要修复它,那么为什么他们应该快乐吗?然而,我的经验是,他们乐于接受一个bug修复,尤其是如果它是快速解决。每个人都知道总是会有缺陷。重要的是,有人准备修复它们很快被发现时。

解决问题是有趣的。

许多程序员喜欢解决问题,像数学难题,编程挑战,数独或填字游戏。甚至谋杀谜团饲料解读:你看看线索,试着找出它的发生而笑。调试和修复bug是相同的。每个错误都是一个新的谜题找出。经常看到一个新的错误报告的时候你的第一反应是:这是不可能的吗?怎么能这样呢?这是当你开始寻找线索。日志怎么说?从系统错误报告吗?此时系统中发生了什么?最近任何改变——新软件,配置更改,交通干扰?让找出开始!这些都是四个原因我喜欢调试和修补漏洞太多。你的经验是什么?

后记:月小升认为,正确的策略是没次编写一小段代码,就多加测试,把bug消除在集成之前,越在前期检测,越容易查到bug,而且后期调用无bug的模块,团队作业效率会高出很多。不过bug总会有的,面包也总会有的。

http://java-er.com/blog/4-bug-good/

时间: 2024-10-11 23:24:50

bug给你带来的四个好处的相关文章

陈松松:做视频营销带来的5个好处

这是我写的第73篇原创视频营销文章 陈松松,6年视频营销实战经验 视频营销受益者,都乐意持续的做视频,发视频, 四五年前发布的视频,到现在依然给他带来精准的流量! 就是因为视频营销的好处太多了, 哪怕再难做,你让他放弃,他都不舍得. 今天我就简单说说视频营销给我们带来的5个好处: 第1个好处:带来业务合作 其实,我过去大部分业务合作都是通过视频获得的,而且都是客户主动找上门,我从来不去主动找他们! 这也是我一直忠爱视频的原因,很多朋友都夸我, 你可真厉害,竟然能做6年, 实际上,就是因为视频营销

机器学习技术将给企业电气系统带来哪5个好处?

机器学习技术在企业电气系统中的工作和维护中发挥重要作用,人们需要了解采用机器学习的益处. 机器学习正在为能源行业带来关键的变化.行业媒体Towards Data Science的一篇文章对于机器学习带给这个领域的变化进行了阐述.文章指出,比尔·盖茨在2017年给美国各地的研究生写的一封信中指出机器学习将成为能源行业最大的颠覆者. 企业电气系统采用机器学习技术的5个好处 企业需要考虑使用依赖于机器学习技术的电气系统的好处.人工智能可以使其更具成本效益和效率. 精明的企业使用依赖机器学习的电气系统

2019年云计算为您的企业带来的8大好处

1.探索多个级别的灵活性. 灵活性涵盖了多种解决方案.从存储空间到带宽灵活性,您的企业必须评估其需求,并了解云如何满足这些需求. 云解决方案在这方面提供的直接业务优势之一是内部和远程员工的灵活性都得到了提高.公共云中的文档存储使员工可以更有效地协作并在任何平台上工作. 任何支持Web的设备都可以访问基于云的工具,这对于移动或远程工作人员特别有用.您的员工可以不受限制地在任何时间,任何时区工作. 服务器负载的灵活性是采用云的另一个优势.您可以选择在期望更多流量访问站点时增加容量,而在不需要太多流量

区块链将给社交领域带来哪些好处?

区块链技术为什么能这么火?主要原因还是因为其去中心化.P2P网络.分布式账本.时间戳.信息透明且不可篡改等特性,可以解决很多行业现存的一些痛点问题.本文和大家分享的是在社交领域应用区块链技术,有哪些好处?一起来看看吧. 区块链技术与社交领域结合,将给社交领域带来以下6大好处: 1.消除信任问题,降低沟通成本 区块链的本质是去信任,通过技术来解决两者之间的信任问题.信任问题一旦解决,陌生人社交就会变得更为容易,整个社交系统的效率随之增加,不需要周边熟人介绍或者第三方中介平台进行"牵线搭桥"

区块链对人工智能的变革:去中心化将带来数据新范式

区块链对人工智能的变革:去中心化将带来数据新范式 2017-01-03 14:59:27  来源:网络大数据  CIO时代抢沙发 摘要:本文基于我个人在人工智能和区块链研究方面的经验,描述了区块链技术可以如何辅助人工智能.二者结合一处即发!区块链技术--尤其是行星尺度的--可以帮助实现人工智能和数据团体长期以来的一些梦想,并打开一些机会.关键词: 区块链 人工智能 近年,从围棋到人类水平的语音识别,人工智能(AI)研究者终于在他们几十年一直努力探索的领域取得了突破.取得突破进展的关键一点是研究者

派克街鱼市场带来的启示

同事推荐一本<鱼>,薄薄30多页的书,却蕴藏着许多令人印象深刻的道理.仔细读来,令人回味. <鱼>是一个虚构的故事,它的故事每时每刻都在世界各地发生着,它不仅让更多的人了解了派克鱼市场的独特之处,还让我们学会热爱我们的工作,即使面对一份不太喜欢的工作,也能心甘情愿的去做,并凭借对工作的热爱去发掘内心蕴藏着的活力,热情和巨大的创造力. 派克街鱼市场带来的四个启示: 选择你的态度:即使无法选择工作,但是工作方式总是可以选择的.我们可以闷闷不乐,无精打采的度过一天,我们也可以带着不满的态

用HAWQ轻松取代传统数据仓库(十四) —— 高可用性

一.HAWQ高可用简介 HAWQ作为一个传统数仓在Hadoop上的替代品,其高可用性至关重要.通常硬件容错.HAWQ HA.HDFS HA是保持系统高可用时需要考虑并实施的三个层次.另外实时监控和定期维护,也是保证集群所有组件健康的必不可少的工作.        总的来说,HAWQ容错高可用的实现方式包括: 硬件冗余 master镜像 双集群 1. 硬件级别的冗余(RAID和JBOD) 硬件组件的正常磨损或意外情况最终会导致损坏,因此有必要提供备用的冗余硬件,当一个组件发生损坏时,不中断服务.某

Visual Studio for Mac第四预

微软发布Visual Studio for Mac第四预览版 去年 11 月,微软发布了 Visual Studio for Mac 的首个预览版本,并且承诺后续数月会带来更多功能.而今天,随着 Visual Studio 2017 的正式发布,Visual Studio for Mac 也迎来了第四个预览版本.Xamarin 团队的 Miguel de Icaza 解释到:"Visual Studio for Mac Preview 4 增添了许多新功能,包括 Xamarin 和 .NET C

从 0 开始的微服务架构:(四)如何保障微服务架构下的数据一致性

虽然已经红了很久,但是"微服务架构"正变得越来越重要,也将继续火下去.各个公司与技术人员都在分享微服务架构的相关知识与实践经验,但我们发现,目前网上的这些相关文章中,要么上来就是很有借鉴意义的干货,要么就是以高端的专业术语来讲述何为微服务架构.就是没有一个做到成熟地将技术传播出来,同时完美地照顾"初入微服务领域人员",从 0 开始,采用通俗易懂的语言去讲解微服务架构的系列.所以,我们邀请青柳云的苏槐与 InfoQ 一起共建微服务架构专题"Re:从 0 开始