为什么我花20%的时间来修复bug?这是正常的吗?

时间:2010-01-17 10:28:43

标签: programming-languages project-management

我刚开始用C,C ++,Java,ASP.NET,C#,Objective-C,I-Phone等编写代码。

但我不明白为什么我要花20%的时间来修复错误。

我刚刚学习了那些编程语言。大多数程序员都面临这类问题吗?

7 个答案:

答案 0 :(得分:17)

你不一定要花费20%的时间来修复bug,但是 - 是的 - 大多数程序员都必须面对修复错误的问题。希望你能够花费不到20%的时间修复bug,如果你不小心它甚至可能需要花费更多的时间。

无论你是多么优秀的程序员,你很可能会在某个时候引入一些错误。如果您与unit testing保持联系,您可以尽可能地避免错误。如果您想尽力避免错误,我强烈建议您查看Test Driven Development(TDD)。

如果您需要帮助入门,有关StackOverflow上的单元测试和TDD的几个问题。以下是其中一些:

答案 1 :(得分:12)

不,大多数程序员的表现都差于20%。

如果你想要领先于游戏,你将开始编写测试以配合你的代码。谷歌:

  • 测试第一次编程
  • 测试驱动设计
  • 行为驱动设计

答案 2 :(得分:4)

错误总会突然出现,应该尽快解决,这样代码就会在你脑海中浮现。

答案 3 :(得分:4)

例如你可以写,但在你的帖子中有一些“错误”:逗号之后没有空格,逗号之前的空格,点之后没有空格,“程序员”不是某人的名字,所以它更好“程序员”。现在你可以用20%的时间来修复它们。

答案 4 :(得分:2)

这是一个奇怪的问题。如果我可以冒昧地改写它......

  

为什么我花了这么多时间来修复自己的错误?

将精力集中在不首先制造它们上。你可以做很多事情来减少错误:

  • 提前明确方法的输入,输出和副作用。
  • 将您的问题分解为易于编写的小型功能和方法。
  • 写了很多测试。
  • 编写可测试的方法。
  • 在点击编译/运行按钮之前校对代码。
  • 让其他人校对。

随着经验的积累,您会发现轻松的错误变得不那么频繁,而较难的错误(通常是由于设计不良或图书馆中的未知行为导致的)开始消耗更多的时间。

答案 5 :(得分:0)

修复错误是编程的一部分,无论你喜欢与否,它总会在那里。

只要编程已经存在,它就一直存在,并且它会存在,直到我们不再编程。

你可以在很多常见的编程笑话中找到它。

和Wayne一样,大多数人花费了超过20%的时间进行调试。

就个人而言,我认为调试是让编程变得有趣的原因,不是因为它本身很有趣,而是因为它需要你很长时间才能修复,一旦你修复它就会得到这种压倒性的感觉所以“WOOHOO!我做到了! “

同样,我同意Wayne尝试使用这些编程技巧,但是,他们从编程中获得了所有乐趣。

我发现在调试时有用的一件事是休息一下,然后在几分钟后回到你的代码,最好是在与朋友或电话短暂交谈后,你会惊讶于你有多快发现错误,最困难的部分就是停止编程并休息一下。

答案 6 :(得分:0)

不,你不要必须花费20%的时间来修复自己的错误。

没有人提到PSP / TSP的任何内容,但减少错误修复时间就是PSP(个人软件过程)的全部内容。通常,通过正式设计您的设计文档,可以让人们从一开始就将错误修复时间减少到不到10%。根据清单审查他们;标准化您的代码,也根据代码审查清单进行审核;然后继续编译和测试。

最终,您可以将错误修复时间减少到接近零,因为您可以更好地审核设计和代码。基本思想是,修复设计文档中的错误或查看代码需要的时间更少;而不是在单元测试中查找和修复错误所需的时间,而不是集成测试。

如果您使用良好的设计评论,代码审查和单元测试,您的错误修复时间几乎每次都应低于10%,我平均低于7%(根据我的统计数据)。 / p>