Ответ 1
В самом проекте Checkstyle мы используем все эти инструменты: проверки Checkstyle, PMD, FindBugs и IntelliJ IDEA.
Вот мои наблюдения:
- Нет замены для Checkstyle, когда дело доходит до форматирования, пробелов, размещения фигурных скобок, Javadoc и общего стиля кода. Там некоторые совпадения с IntelliJ при именовании и некоторые плохие практики, но это.
- Правила PMD очень похожи на IntelliJ. Оба инструмента направлены главным образом на обнаружение типичных ошибок или плохих практик. Вы по-прежнему найдете некоторые уникальные полезные правила PMD, хотя бы некоторые случайные примеры: BigIntegerInstantiation, CommentDefaultAccessModifier, SingletonClassReturningNewInstance.
- Я бы никогда не ушел из FindBugs в пользу другого инструмента. FindBugs фокусируется только на поиске реальных ошибок в коде с низкой скоростью ложных срабатываний. Обычно это не требует почти любой конфигурации - просто включите все правила и безопасно для сна. Конечно, есть несколько совпадений с IntelliJ, но чем больше обнаружено ошибок, тем лучше.
Инспекции IntelliJ IDEA - отличный инструмент, поскольку они содержат множество уникальных и надежных правил. И это не только Java - вы можете из окна обнаружить проблемы в XML, свойствах, SQL, Spring, HTML, CSS и т.д. Они требуют много конфигурации и выбора правильного набора правил. Включение всех правил сообщало бы о сотнях тысяч нарушений в каждом крупном проекте. И трудно внедрить эти проверки в Maven или Gradle, чтобы проект был самооправданным.
Моя рекомендация состоит в том, чтобы использовать все эти инструменты, поскольку каждый из них содержит по меньшей мере дюжину (иногда десяток десятков) полезных проверок, которые недоступны нигде.