Есть ли какой-нибудь инструмент для обнаружения кода / функциональности, который больше не используется? - PullRequest
2 голосов
/ 09 декабря 2011

У нас много запущенных приложений (все они работают на платформе Java), и нам нужно проверить, какие из них использовались в последние, скажем, 3 месяца, и среди этих активных приложений, какие части / функции (и как часто) все еще используются. Это возможно?

Целью здесь является обнаружение приложений или функций, которые больше не имеют отношения к бизнесу, и их удаление, чтобы в итоге у нас было меньше кода для обслуживания и мониторинга.

Есть ли какой-нибудь инструмент, который мог бы помочь нам достичь этого?


Мы действительно используем гибкие методы, поэтому, когда новое приложение запускается в производство, оно имеет только те функции, которые важны для бизнеса, но иногда некоторые функции этого приложения теряют силу (по разным причинам), поэтому мы хотели бы иметь способ определить это.

Ответы [ 5 ]

3 голосов
/ 09 декабря 2011

Существует как минимум два инструмента, которые вы можете развернуть в своем приложении и собрать некоторую статистику, даже в производственной среде:

  1. AspectJ - переплетать все классы и каким-либо образом регистрировать каждое выполнение метода.

  2. JaCoCo - по сути, делает то же самое, но автоматически с помощью агента Java. Выполненные методы / ветви (на самом деле это инструмент покрытия кода) сохраняются в файле для дальнейшей обработки. Должно решить вашу проблему довольно легко.

Оба подхода должны работать с любым языком JVM (я вижу в вашем вопросе), поскольку они работают на уровне байт-кода. Однажды я использовал JaCoCo для измерения покрытия кода (подумайте: какие методы / ветки были выполнены) во время теста Selenium.

0 голосов
/ 14 марта 2013

Вы можете использовать JArchitect инструмент для анализа вашего кода и обнаружения неиспользуемого кода и функциональных возможностей, есть некоторые из его функциональных возможностей:

  • Язык кода запроса (CQLinq),
  • более 80 метрик,
  • и отображение результатов анализа в различных типах диаграмм
0 голосов
/ 14 марта 2013

Я также использую следующие инструменты статического анализа:

  • UCDetector (плагин Eclipse с открытым исходным кодом) - может быть весьма полезным.

  • Structure101 (коммерческое программное обеспечение) - также может использоваться для этой цели (например, поиск неиспользуемых классов).

0 голосов
/ 09 декабря 2011

Существует также PMD

Кстати, он может быть установлен как плагин для различных IDE

0 голосов
/ 09 декабря 2011

Например, Intellij IDEA имеет статический анализ, который выделяет имена типов / методов, которые не вызываются.Если вам нужен автоматический инструмент для этого, попробуйте Sonar .Я полагаю, что оба эти метода могут дать несколько ложных результатов, если вы используете отражение в некоторой форме.

...