是否有任何工具可以检测不再使用的代码/功能?

时间:2011-12-09 18:11:41

标签: java jvm jruby monitor

我们有许多应用程序在运行(考虑所有这些应用程序都在Java平台上运行),我们需要检查最后一个,比如3个月使用哪些应用程序,以及在这些活动应用程序中使用哪些部件/功能(以及如何使用)经常)仍然在使用。这可能吗?

此处的目标是检测不再与业务相关的应用程序或功能,并将其删除,以便最终维护和监控的代码更少。

是否有任何工具可以帮助我们实现这一目标?


我们使用敏捷方法,因此当新应用程序投入生产时,它只具有对业务很重要的功能,但有时这个应用程序的某些功能会过期(出于不同的原因),所以我们希望有一个识别的方式。

5 个答案:

答案 0 :(得分:3)

您可以在应用程序中部署至少两个工具并收集一些统计信息,即使在生产中也是如此:

  1. AspectJ - 编织所有类并以某种方式记录每个方法的执行。

  2. JaCoCo - 基本上做同样的事情,但在Java代理的帮助下自动完成。执行的方法/分支(实际上,这是一个代码覆盖工具)保存在文件中以供将来处理。应该很容易解决你的问题。

  3. 这两种方法都适用于任何JVM语言(我在你的问题中看到),因为它们在字节码级别上工作。我曾经在Selenium测试运行期间使用JaCoCo测量代码覆盖率(想一想:哪些方法/分支被执行)。

答案 1 :(得分:0)

例如,Intellij IDEA具有静态分析,该分析灰显未调用的类型/方法的名称。如果您需要自动工具,请尝试Sonar。我想,如果你以某种形式使用反射,这两种方法都会产生一些错误的结果。

答案 2 :(得分:0)

还有PMD

btw它可以作为不同IDE的插件安装

答案 3 :(得分:0)

我也在使用以下静态分析工具:

  • UCDetector(开源eclipse插件) - 非常有帮助。

  • Structure101(商业软件) - 也可用于此目的(例如,查找未使用的课程)。

答案 4 :(得分:0)

您可以使用JArchitect工具分析代码并检测未使用的代码和功能,其中包含一些功能:

  • 代码查询语言(CQLinq),
  • 超过80个指标,
  • 并在不同类型的图表中显示分析结果