Получите отзывы от SonarQube в отношении дизайна и архитектуры

Я анализирую кодовую базу, состоящую в основном из Java, которая довольно большая (~ 1 миллион строк кода) с использованием SonarQube, Jenkins и Bitbucket.

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

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

Вот мои плагины на моем сервере SonarQube (под управлением v5.3), которые я использую на данный момент:

  • Checkstyle v2.4
  • Findbugs v3.3
  • Git v1.1
  • Java 3.11-build4121
  • Свойства Java v1.5
  • PMD v2.5
  • SVN v1.2

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

Таким образом, мой вопрос заключается в том, как можно использовать SonarQube и определенные плагины для поиска улучшений архитектуры и дизайна (например, путем просмотра различных изменений с течением времени) в базе кода?

Я рад любым отзывам или вопросам, которые могут у вас возникнуть.


person Tomas Melin    schedule 14.03.2016    source источник
comment
Какой у Вас вопрос?   -  person G. Ann - SonarSource Team    schedule 14.03.2016


Ответы (1)


Как вы заметили, матрица зависимостей была удалена. В любом случае он, вероятно, был бы непригоден для вас - отчасти поэтому он был удален.

Как вы также заметили, существуют правила, касающиеся сложности классов и методов. Кроме того, вы найдете показатели сложности на уровне проекта, модуля, каталога и файла. (Щелкните «Структура».) Они должны помочь вам определить некоторые «горячие точки».

Также может помочь правило Java между пакетами < / strike> (EDIT: это правило было удалено в подключаемом модуле Java 4.0), как и показатели, связанные с дублированием.

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

Я не думаю, что в этой области для вас много пользы, так это плагины CheckStyle, PMD и FindBugs. Наиболее ценные правила из первых двух были заменены подключаемым модулем Java, а также заменено большинство правил FindBugs.

person G. Ann - SonarSource Team    schedule 14.03.2016
comment
Спасибо за отличный ответ! Известны ли вам какие-либо другие полезные плагины для этой цели? Стоит ли по-прежнему устанавливать плагины (Checkstyle, PMD и FindBugs), или они излишни и для большинства других целей (например, для поиска аномалий и проблем)? Причина, по которой мне интересно, заключается в том, замедляют ли они процесс анализа, поскольку сервер должен дважды проверять одни и те же правила и т. Д. - person Tomas Melin; 14.03.2016
comment
ИМО, вы можете удалить эти плагины; особенно для вашей заявленной цели. Я мог бы посоветовать подержать FindBugs еще немного, если бы вы не фокусировались на архитектуре. Что касается других потенциально полезных подключаемых модулей, я просмотрел страницу других подключаемых модулей, прежде чем отправил свой ответ и не нашел ничего убедительного. Возможно, будет применяться плагин Structure101, но его документация выглядит на сегодняшний день, и, похоже, он предназначен для интеграции с коммерческим продуктом. - person G. Ann - SonarSource Team; 14.03.2016
comment
Упомянутое правило Java, похоже, больше не доступно. Его заменило какое-то другое правило? - person slartidan; 06.09.2016
comment
Сброшен без замены - person G. Ann - SonarSource Team; 06.09.2016