阅读更多

8顶
0踩

研发管理

原创新闻 程序编译为何失败?

2014-06-26 15:05 by 副主编 wangguo 评论(0) 有10510人浏览
完美的程序不会是一次就写成功的,都要经过反复编译、调试、修改。调试过程可能会花费大量的时间,如果了解了常见编译错误发生的原因,这有助于节省时间,提高开发效率。

Google、香港科技大学和内布拉斯加大学的研究人员分析了1.8万Google工程师在2012年11月到2013年7月之间的超过2600万次编译,分析出了编译失败的常见原因、修复所花费的时间等。

下图显示了这些数据收集的过程。



1.  编译失败率与编译次数、开发者经验无关

研究人员推测,编译次数越多,出错的几率也就越大。但是实际数据显示,这两者之间没有相关性。

研究人员还推测,有经验的开发者出错率会比较低,但事实也并非如此。

2.  绝大多数编译失败与依赖有关



大约65%的Java编译错误被认为跟依赖有关,比如编译器无法找到一个符号(这是最常见编译错误,占所有编译错误的43%),或者是包不存在。

在C++编译中,大约53%的编译错误跟依赖相关,最常见的错误是使用了未声明的标识符和不存在的类变量。

3.  C++代码编译更容易出错

下图是编译错误率(x轴)对应的开发者人数(y轴)。



研究发现,C++代码的构建失败率为38.4%,而Java为28.5%。此外,在C++编译中发生语法错误比Java更频繁,但是C++编译错误会得到更快的解决。

研究人员认为,造成这种差异的原因是Java开发一般使用IDE,这有助于减少一些简单的语法错误,但IDE生成的代码在一定程度上也增加了解决编译错误的难度。

详细报告:Programmers’ Build Errors : A Case Study (at Google)(PDF)
  • 大小: 73.7 KB
  • 大小: 78 KB
  • 大小: 74.4 KB
8
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics