На самом деле, про SonarQube есть некоторое количество информации в рунете: это и статья в википедии, и аналитические заметки на хабре (кто ищет – тот найдет, как говорится), знатокам английского языка вообще достаточно будет домашнего сайта продукта.

В этой статье повествование пойдет по принципу "утверждение – раскрытие"; раскрывать будем заглавие статьи, итак:

SonarQube – продукт компании SonarSource, расположенной в Швейцарии (однако есть данные о том, что и там не обошлось без нашего брата); написан на Java, и родился из идеи сделать «проверяльщик кода», внезапно, Java. Этим объясняется впечатляющее количество правил для проверки main-языка:

А еще можно с определенной мерой уверенности утверждать, что платформа, будучи проверена самой собой, не имеет внутри критических ошибок и багов (работает стабильно). В своей работе SonarQube опирается на понятие технический долг и стремление привести его к нулю.

Платформа непрерывной проверки исходного кода – сам по себе SonarQube – сервер проверки исходного кода, хостящийся локально или где-то в инфраструктуре; его задача – хранение информации о проектах, обработка пул-реквестов в них, агрегация и выдача информации, замечаний и технического долга в удобном виде:

Сам по себе функционал проверок реализуется в виде плагинов, которые устанавливаются нажатием пары кнопок в интерфейсе настроек сервера:

Любого языка программирования – в SonarQube, грубо говоря, из коробки встроены (бесплатно доступные плагины) следующие языки программирования (скриншот с нашего сервера):

Официальный список плагинов (коммерческих, в том числе):

SonarQube, будучи платформой, предоставляет функционал для написания плагинов: абстрактную модель, в рамках которой реализуются проверки. То есть, любой человек может придумать свой язык программирования, а затем на базе SQ написать плагин для своего ЯП. Мы («Серебряная Пуля»), конечно, не придумали язык 1С, но на базе платформы SonarQube реализовали плагин для его проверки:

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

Также SonarSource выпустили продукт SonarLint, это расширение для сред разработки Eclipse, IntelliJ IDEA, Visual Studio и Command Line. Его основная прелесть заключается в том, что он может подтягивать правила из SonarQube (если, конечно, он у вас есть) и прямо в среде вам рапортовать об ошибках и нарушениях правил. Если SonarQube не развернут, то SonarLint проверяет базовые языки (Java, TypeScript, etc) стандартными проверками.

Резюмируя, стоит отметить следующее:

  • SonarQube – продукт с открытым исходным кодом;
  • имеет низкий порог входа;
  • может приносить пользу даже при локальном использовании;
  • позволяет всем заинтересованным в процессе разработки говорить на одном языке и пользоваться метрикой технического долга;
  • предоставляет средства для увеличения количества проверок (правил написания кода);
  • выставляет невысокие требования к инфраструктуре:
Вы нашли ответ?