Ищем неиспользуемые/недостаточно используемые типы кода на Java.

Вопрос или проблема

У нас есть большой проект на Java с тысячами исходных файлов.

Недавно я столкнулся с типом, который нигде не используется.

Это заставило меня задуматься, сколько таких типов у нас есть.

Существует ли какой-либо инструмент для выявления неиспользуемых и недостаточно используемых типов?

Что у меня есть:

  1. IntelliJ Community 2024.1 (его инспекция кода очень медленная, иногда она застревает в цикле)
  2. Java 8
  3. Maven (вы можете предложить какой-либо плагин)

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

Обратите внимание, что это устаревший инструмент.

Ответ или решение

Для выявления неиспользуемых и недостаточно используемых типов в вашем большом Java проекте существуют различные подходы и инструменты.

1. Использование статического анализа кода

Вы уже упомянули использование IntelliJ, однако если его работа по проверке кода слишком медленная, можете рассмотреть другие инструменты для статического анализа.

SonarQube — это мощный инструмент для анализа кода, который может помочь вам идентифицировать неиспользуемые классы и методы. Он предоставляет веб-интерфейс, где вы можете видеть метрики по всему проекту, включая ненужные или недостаточно используемые компоненты.

2. Визуализация зависимостей

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

3. Maven плагины

Если вы используете Maven, можете попробовать следующие плагины:

Maven Dependency Plugin — этот плагин позволяет вам проанализировать зависимости вашего проекта и определить, какие классы и модули используются. С помощью команд:

mvn dependency:analyze

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

Unused Dependency Plugin — этот плагин позволяет находить неиспользуемые зависимости в вашем проекте. С его помощью вы сможете увидеть, какие классы в проекте не используются.

4. Ручной анализ

Если автоматизированные инструменты не помогают, вам может потребоваться выполнить ручной анализ:

  1. Используйте поиск по проекту для нахождения определенных классов и методов. Владение хорошим инструментом IDE, таким как IntelliJ IDEA, может значительно упростить этот процесс.
  2. Проверьте, не используются ли классы в тестах. Иногда классы используются только в тестах, и их отсутствие в основном коде может ввести в заблуждение.

Заключение

Сочетание автоматизированных инструментов и ручного анализа может помочь вам эффективно выявлять неиспользуемые и недостаточно используемые классы. Попробуйте начать с SonarQube и Maven Dependency Plugin, чтобы получить общее представление о структуре вашего проекта и выявить возможные кандидаты для удаления. Также полезно периодически пересматривать структуру проекта, чтобы минимизировать накопление ненужного кода.

Оцените материал
Добавить комментарий

Капча загружается...