好的程序员写没有错误的代码,不是吗?

好的程序员产生的错误更少,而不好的程序员造成的错误更多。 听起来合乎逻辑,不是吗? 但是,这种思维方式受到了很多批评。 以这个例子为例:错误是不可避免的,而不是期望我们减少错误,而是让我们专注于正确的设计,让测试人员发现并报告错误。 然后我们将修复它们。

或这个:害怕犯错误使我的写作速度降低,实验次数减少,从而转化为质量较低的软件。 在这里这里阅读更多有关它的信息 但是,让我从不同的角度看待这一问题,并断言是的,确实,好的程序员创造 bug 更少

好的程序员写没有错误的代码,不是吗?

破坏! (2000)由Esteban和Jose Miguel Ibarretxe撰写

我认为这全都与我们如何定义质量以及错误是什么有关。

如果我们查看错误的传统且非常“直观”的定义,就会导致我们的软件产生错误或意外的结果。 但是,如果我们更多地考虑软件的实际使用方式以及由谁使用,我们会发现还有许多其他类型的错误,包括可伸缩性,可靠性甚至可维护性。

如果我们将所有这些“ -ilities”放在列表中,并按其严重性和对业务的重要性对其进行优先级排序,我们将发现与功能相关的错误距离顶部还很远。 我实际上将可维护性放在首位。

我的观点是,错误并非都相等。 如果我正在编写由一段Java代码生成的PDF报告,而我的报告却错过了页脚,那是一种错误,其修复将花费企业X美元。 另一方面,如果我的PDF生成代码很难修改,以至于要将其格式从A4更改为US Letter,我们必须从头开始重写它,那是完全不同的错误类型。 不用说,其修复将贵很多倍。

所以是的,错误是不可避免的。 我们不应该害怕它们,并准备制造它们。 但是,优秀的程序员会犯一些更便宜的错误,以避免犯更大的错误。

优秀的程序员了解,在通常必须有限的时间内实现软件的过程中,为了获得可维护性,我们必须牺牲功能。 理想情况下,您希望同时实现这两者,但实际上,这几乎是不可能的。

我们所有人都在压力下工作,我们有时间和金钱的限制。 在这些约束条件下,优秀的程序员更喜欢使功能有缺陷和不完整,同时又要保持设计的简洁性和易于维护性。 当然,有例外情况,即企业将功能置于所有其他事物之上,但是这种情况很少发生(如果企业很聪明)。

总而言之,我认为一个好的程序员比一个好的程序员产生更多的功能性错误,尽管一个坏的程序员产生的错误比一个好的程序员产生的错误更昂贵。

翻译自: https://www.javacodegeeks.com/2015/07/good-programmers-write-bug-free-code-dont-they.html