【发布时间】:2009-11-01 20:52:20
【问题描述】:
您通常花费在调试高级和低级错误上的时间的大致比例是多少?
就本次讨论而言,高级错误是诸如不正确的算法、对输入数据和/或操作环境的错误假设、在某些事物的初始实施中被忽略的情况、忘记处理边界条件/边缘案例等。为了讨论,它们还可能包括糟糕的设计决策,这些决策会在代码中引入限制并且更改并非易事,即使这会扩展错误的定义。换句话说,高级错误是由于没有表达你应该的意思而导致的错误。
低级错误是诸如内存管理和损坏问题、不是由高级错误引起的空指针取消引用、通过编译器的细微语法错误、处理数组时出现的错误等。换句话说,它们是由于没有按照您的意思进行编码而导致的错误。
另外,为了比较起见,您主要使用什么语言以及您主要从事什么类型的编程?
【问题讨论】:
-
我的道歉。但这可能很快就会在“主观和争论”下关闭
-
@Ravi - 不。不争论。
-
您的低级和高级错误示例对我来说似乎是矛盾的。例如,您将未处理的边缘情况称为高级错误,但将空指针异常和循环中的非一错误都称为低级错误。我认为这三个都是算法的边缘情况,通常在规范中没有特别提到,或者你称之为高级错误。所有这些通常都是由于开发人员未能正确测试造成的。
-
如果您想减少调试时间,请查看测试驱动开发(或至少是单元测试)。
标签: debugging language-agnostic