Подтвердить что ты не робот

Инструмент Java для улучшения разработки моего чистого кода

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

Я знаю обычные инструменты для статического анализа (PMD, Findbugs, Checkstyle), инъекции зависимостей, тестирование и покрытие кода. Но я ищу инструмент, который подсказывает мне, насколько чистым является мой код (как описано например здесь и в "Код чистки дяди Боба" ), как я могу сделать его более чистым, желательно настроенным на мой класс чистого кода. Оптимальным был бы инструмент, который также мог бы показать мне, как я буду совершенствоваться в CCD.

Примером такого инструмента является CcdAddIn, который отображает значения CCD в соответствии с вашим текущим уровнем CCD, но его только для визуального Студия:(

Знаете ли вы, что такие инструменты для Java? Какой из них лучше? Что из вышеперечисленного они выполняют? Или у вас есть причина, почему такой инструмент не существует (пока)?


Если вы не знаете такого инструмента: знаете ли вы инструмент статического анализа, который можно настроить для проверки критериев, приведенных в Дядя Боб Чистый Код, например предупредите меня о запахах, таких как имена или комментарии, которые, как представляется, выбраны плохо, слишком длинные методы или слишком много параметров, и немедленно предложите конкретный рефакторинг, чтобы решить эту проблему?

4b9b3361

Ответ 1

Sonar поставляется с некоторыми достойными профилями качества кода - на основе PMD, Checkstyle и Findbugs - и приятным интерфейсом для настраивая их для вашего собственного использования. Я не думаю, что вы найдете один универсальный список "Ты..." в мире Java. Слишком много разных приложений и подходов к развитию для такого единообразия. Если вы посмотрите на предопределенные= "http://pmd.sourceforge.net/rules/index.html" rel= "noreferrer → правила PMD, вы даже найдете набор" противоречивых правил", которые, в частности, порождают горячие дебаты. Некоторые любят их; некоторые ненавидят их. Таким образом, первым моментом здесь было бы использование установленных конвенций в качестве руководящих принципов и добавление/удаление по своему усмотрению.

Я никогда не слышал о CCD на земле Java, поэтому я не ожидал найти прямой перевод. Если вам нужен здоровый (чистый?) Код, вы должны использовать такой инструмент, как Sonar, либо все инструменты, которые он компилирует, в один удобный интерфейс. Сонар делает гораздо больше, чем просто статический анализ. Там есть демонстрационный экземпляр Sonar, где вы можете получить представление об его функциях, а также отбросить ужас в метриках некоторых библиотек с открытым исходным кодом. Итак, вторая мораль была бы: "Используйте сонар, потому что это потрясающе".

Ответ 3

Если вы используете огромную Hudson для непрерывной интеграции, есть хостов плагинов, которые предоставляют отчеты и анализ тенденций для того, как код улучшается (или разлагается;-)) со временем. Включая PMD, Checkstyle, FindBugs, а также зону тестирования

Ответ 4

Я нашел только CCD Workbench, который, кажется, довольно близок к визуальной студии CcdAddIn, но я не нашел места для загрузки этого плагина eclipse (и не получил ответа на мой адрес электронной почты).

Описание рабочего стола CCD, а также этот отчет о его разработке, находятся на немецком языке. Может ли быть, что движение ПЗС в Германии сильнее, чем в других странах? Кажется мне так.

Ответ 5

Большинство инструментов, которые обнаруживают нарушения ПЗС, работают, сначала собирая метрики кода и выделяя выбросы.

Сонар - один из таких замечательных инструментов, о котором уже говорилось.

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

iPlasma - отличный инструмент

CodePro - это плагин Eclipse, который помогает обнаруживать проблемы с кодом и дизайном (например, дублированный код, классы, которые разрушают инкапсуляцию, или методы, размещенные в неправильном классе).

Рельеф - это инструмент, отображающий следующие параметры проектов Java:

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

Stan4j - это коммерческий инструмент стоимостью в несколько сотен долларов. Он нацелен только на Java-проекты, очень близок к (или немного лучше, чем сообщениям, не уверенным) Sonar. Он имеет хорошую интеграцию Eclipse.

Ответ 6

Для Intellij Idea, я бы рекомендовал QA Plug, который похож на Sonar. Он объединяет выходные данные различных инструментов, хотя он не обеспечивает графического представления. Он хорошо интегрирован в среду IDE.

Кроме того, вы можете использовать Анализ зависимостей идей, чтобы обнаружить нежелательные циклы. Он предлагает, помимо прочего, Матрицу структуры проектирования/зависимостей (DSM).