“大多数开发人员只是想写新的功能,他们不想使用维护和修补漏洞”。这也是大多数开发人员是错过的乐趣和好处就是发现和修复bug。 每个错误都可以教你一些东西。 反馈是一个关键,它是敏捷开发的主要原则之一。单元测试和迭代开发技术更快地提供反馈。与单元测试你的代码是否有效的问题上得到反馈,和每个交付版本你可以听听客户认为的新特性。错误报告是另一种形式的反馈您的代码。一个错误的可以有许多不同的原因。一些可能性是:一个简单的编码错误(比如一个嵌套的if语句,你最终在错误的分支),或者一个错误的假设你(也许传入的消息并不总是有某些字段,所以你有一个空指针异常),或有缺失的要求(你应该回答消息以不同的方式,如果一个给定的参数存在),或客户使用软件在一个意外的(但正确),导致错误。 在这些情况下,您可以学习如何代码,它是关于你的产品或系统的作用。例如,当我在Tilgin VoIP开发产品,有一个情况我们收到了一个错误的信息,导致我们的软件循环下去。消息所包含元素使用tag-length-value编码(电磁阀)参数,长度值元素的总长度。这样你可以跳过未使用或未知元素向前跳“长度”的字节数。在这种情况下,长度值是零,所以跳过我们指向相同的元素后,指出在跳之前,导致无限循环。这个bug前,仔细检查我的代码长度值太大值会导致阅读过去的消息缓冲区。不过,在那之前,我从来没有想到,一个零长度可能是同样糟糕。
...
继续阅读
(42)