我处于一种情况,我需要至少付出一些努力从我的源代码中删除从未使用过的代码。一般偏好是使用静态代码分析工具。我们在其他项目中对此非常幸运,但我听到的大多数人都是从事设备级代码的 C/C++ 开发人员。
我是一名在Java EE系统上工作的 Web 开发人员。最受欢迎的分析工具是Coverity Prevent,尽管如果我能提出强有力的理由证明它更适合我们正在开发的技术,我可能会提倡其他东西。
我发现自己很怀疑——当你在一个有很多抽象的系统上运行时,静态代码分析对死代码的有效性是什么?例如,我们使用Spring的依赖注入,以及JSF。在这两种情况下,都没有简单的方法来跟踪从前端到后端的函数调用,并完整地了解什么被调用,什么没有被调用。
我非常担心死代码检查的误报将超过首先运行该工具的价值。
这种场景的经验是什么?当您的架构使用大量抽象时,您是否设法从静态代码分析工具中获得价值?您需要做些什么才能让它以最少的误报工作吗?