2015-12-06 5 views
8

Недавно я ищу лучший набор инструментов для проверки кода. Моя IDE - Intellij 15.0, и я знаю, что там есть хорошие возможности проверки, но когда я просматриваю интернет, я не нашел хорошего сравнения между встроенным кодом проверки Intellij и этими тремя. Может ли кто-нибудь, кто их пробовал, может дать какую-то лучшую практику, что использовать? Intellij охватывает все из них?Intellij IDEA встроенный код проверки vs checkstyle, PMD & findbugs

Я знаю, что findbugs работают на двоичном уровне, но все же позволяют ему оставаться в сравнении.

ответ

10

В Checkstyle самого проекта, мы используем все эти инструменты: Checkstyle, PMD, FindBugs и IntelliJ IDEA inspections.

Вот мои наблюдения:

  • Там нет замены для Checkstyle, когда речь идет о форматировании, пробельные, брекеты, размещение Javadoc и общий стиль кода. Есть некоторые совпадения с IntelliJ при именовании и некоторые плохие практики, но это все.
  • Правила PMD очень похожи на правила IntelliJ. Оба инструмента направлены главным образом на обнаружение типичных ошибок или плохих практик. Вы по-прежнему найдете некоторые уникальные полезные правила PMD, хотя бы некоторые случайные примеры: BigIntegerInstantiation, КомментарийDefaultAccessModifier, SingletonClassReturningNewInstance.
  • Я бы никогда не ушел с FindBugs в пользу некоторых других инструментов. FindBugs фокусируется только на поиске реальных ошибок в коде с низкой скоростью ложных срабатываний. Обычно это не требует почти любой конфигурации - просто включите все правила и безопасно для сна. Конечно, есть несколько совпадений с IntelliJ, но чем больше обнаружено ошибок, тем лучше.

IntelliJ IDEA проверки являются отличным инструментом, так как они содержат много уникальных и надежных правил. И это не только Java - вы можете избавиться от ошибок в XML, свойствах, SQL, Spring, HTML, CSS и т. Д. Они требуют много конфигурации и выбора правильного набора правил. Включение всех правил сообщало бы о сотнях тысяч нарушений в каждом крупном проекте. И трудно внедрить эти проверки в Maven или Gradle, чтобы проект был самонастраиваемым.

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

+1

Спасибо за ответ Михал. Используете ли вы плагины IntelliJ для всех этих инструментов? Если мы вставим изображение, например SonarQube, которое будет запущено в CI, вы все равно будете использовать их все в среде IDE? – Idan

+0

Я просто использую CheckStyle-IDEA, потому что он может быстро анализировать в реальном времени вместе с быстрой проверкой всех файлов перед фиксацией. Проблемы с проверкой являются наиболее распространенными, поэтому это действительно полезно. Для PMD и FindBugs я вызываю 'mvn pmd: check findbugs: check' или эквивалент для Gradle. Нарушения в этих инструментах менее распространены, но более серьезны, поэтому на случай, если я что-то забуду, CI все равно откажется от сборки. –

 Смежные вопросы

  • Нет связанных вопросов^_^