我经常觉得,在多次迭代我的代码之后,我留下了一些函数、类或其他代码行,这些代码在以前的版本中有意义,但对于新版本来说并不是很有用。我知道探查器可以告诉您在运行测试用例时调用了代码的哪一部分?但是,如何确定代码的哪一部分从未被调用来删除它,以便剩下的内容更具可读性呢?例如,是否有一种快速方法可以知道代码中的哪些函数没有从任何地方调用并且可以安全地删除。对于小型代码库来说,这听起来可能是一个微不足道的问题,但是当您的代码库逐年增长时,这将成为一个重要且不那么微不足道的问题。
总结一下这个问题,对于不同的语言,删除死代码的最佳方法是什么?是否有任何与语言无关的解决方案或策略?或者说每种语言都提供了识别死代码的工具。
我们通常使用 Java、Python 或 Objective-C 进行编程。
您正在寻找的术语是“代码覆盖率”,并且有各种工具 http://www.google.com/search?q=java+code+coverage这将生成该信息。您必须确保通过代码执行所有可能的路径,以便能够使用这样的工具检测“死代码”,而这只有通过really广泛的测试集。
大多数编译器都有一定程度的死代码检测,但这只检测不可能被调用的代码,而不是由于程序逻辑等而永远不会被调用的代码。
edit:
特别针对Python:如何找到Python代码中未使用的函数? https://stackoverflow.com/questions/693070/how-can-you-find-unused-functions-in-python-code
对于Java:如何查找java项目中未使用/死的代码 https://stackoverflow.com/questions/162551/how-to-find-unused-dead-code-in-java-projects, Java:消除死代码 https://stackoverflow.com/questions/4756462/java-dead-code-elimination
对于 Objective-C:Xcode——在项目中查找死方法 https://stackoverflow.com/questions/4764001/xcode-finding-dead-methods-in-a-project, 清理 Objective-C 代码 https://stackoverflow.com/questions/1329013/cleaning-up-objective-c-code
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)