我喜欢我的代码井井有条,即正确格式化、可读、设计、测试、检查错误等。事实上,我对此很狂热。(也许甚至比狂热还多……)但根据我的经验,帮助代码质量的行动几乎没有实施。(我所说的代码质量是指您每天生成的代码的质量。软件质量与开发过程等的整个主题要广泛得多,而不是这个问题的范围。)
代码质量似乎并不受欢迎。根据我的经验,一些例子包括
可能每个 Java 开发人员都知道 JUnit,几乎所有语言都实现了 xUnit 框架,但在我所知道的所有公司中,只有极少数适当的单元测试存在(如果有的话)。我知道由于技术限制或紧迫的最后期限,并不总是可以编写单元测试,但在我看到的情况下,单元测试本来是一种选择。如果开发人员想为他/她的新代码编写一些测试,他/她可以这样做。我的结论是开发人员不想编写测试。
静态代码分析经常在小型项目中使用,但并没有真正用于强制编码约定或在企业项目中发现可能的错误。通常,甚至像潜在的空指针访问这样的编译器警告也会被忽略。
会议发言人和杂志会谈论很多关于 EJB3.1、OSGI、Cloud 和其他新技术,但很少谈论新的测试技术或工具、新的静态代码分析方法(例如 SAT 求解)、有助于保持更高质量的开发过程、如何一些令人讨厌的遗留代码被测试了,......(我没有参加很多会议,对于敏捷主题的会议来说,它可能看起来不同,因为单元测试和 CI 等在那里具有更高的价值。)
那么为什么代码质量如此不受欢迎/被认为很无聊?
编辑:
感谢您的回答。其中大多数涉及单元测试(并已在相关问题中进行了讨论)。但是还有很多其他的东西可以用来保持高代码质量(参见相关问题)。即使您无法使用单元测试,您也可以使用每日构建,在您的 IDE 或开发过程中添加一些静态代码分析,尝试结对编程或强制审查关键代码。