SonarQube это платформа автоматического ревью кода, которую вы ставите на свой сервер. Она прогоняет исходники через набор правил и показывает баги, уязвимости и запахи кода в 30+ языках, а потом встраивается в CI и блокирует сборку, если новый код хуже заданной планки. Ниже разберем, чем этот анализ отличается от линтера, какие бывают редакции, как прогнать первый анализ проекта за вечер и где SonarQube честно бессилен.
TL;DR. SonarQube ищет три вида проблем: bug, vulnerability, code smell, и привязывает их к трем software qualities и четырем атрибутам Clean Code. Бесплатная Community Build под лицензией LGPL ставится на свой VPS за вечер, платные редакции добавляют ветки, pull request и языки вроде C++ и Swift. В статье: таблица редакций, пошаговый первый запуск, аналоги и ограничения.

Что такое SonarQube простыми словами?
Это сервер статического анализа: он читает ваш код без запуска, находит проблемные места по правилам и держит историю качества проекта.
SonarQube анализирует более 30 языков, включая Java, JavaScript, TypeScript, Python, C# и Go, и встраивается в CI как отдельный шаг пайплайна. Инструмент self-managed: вы разворачиваете его на своем сервере и владеете данными. Результат прогона это список замечаний с указанием файла, строки и причины, почему код считается проблемным.
Представьте корректора, который читает рукопись до сдачи в печать. Он не проверяет, интересный ли сюжет, но ловит опечатки, повторы и места, где читатель споткнется. SonarQube делает то же самое с репозиторием.
Кроме замечаний он считает покрытие тестами, долю дублированных строк и технический долг в часах. Эти цифры копятся от прогона к прогону, и через месяц видно, куда проект движется. Не в ощущениях тимлида, а в графике.
Для вайбкодера польза еще очевиднее. Когда Claude Code или Cursor генерируют за вечер пару тысяч строк, глазами это не вычитать.
Чем SonarQube отличается от обычного линтера?
Линтер живет в редакторе и смотрит на файл. SonarQube смотрит на проект целиком, помнит историю и умеет останавливать релиз.
ESLint или Ruff отрабатывают за доли секунды на одном файле и правят форматирование. SonarQube запускается на сервере, строит модель всего проекта, считает межфайловые зависимости и сохраняет результат каждого прогона. Главное отличие: quality gate, который возвращает FAILED и роняет сборку, если новый код не проходит порог.
По факту эти штуки не конкуренты, а слои. Линтер ловит мелочь в момент набора текста. SonarQube отвечает на вопрос, можно ли этот код вообще выкатывать.
Еще одно различие в глубине. Часть правил использует символьное выполнение: анализатор прогоняет возможные пути исполнения и находит разыменование null или незакрытый ресурс, которые обычный линтер по синтаксису не увидит.
И третье. История. Линтер не знает, что вчера дублей было 3%, а сегодня 11%.

Какие типы замечаний находит SonarQube?
Исторически три типа: bug, vulnerability, code smell, плюс security hotspot. С версии 10.3 Sonar перевел их в модель software qualities.
Bug относится к надежности, vulnerability к безопасности, code smell к поддерживаемости. Четвертая категория, security hotspot, это не дефект, а подозрительное место, которое просит взгляда разработчика. По заявленной цели Sonar для багов и code smells стремится к нулю ложных срабатываний, а для уязвимостей держит планку выше 80% истинных.
В свежих версиях типы формально помечены как устаревшие. Вместо них замечание привязывают к трем software qualities (security, reliability, maintainability) и к одному из четырех атрибутов Clean Code: consistent, intentional, adaptable, responsible. Старый режим тоже остался, переключается в настройках.
| Тип замечания | Что означает | Software quality |
|---|---|---|
| Bug | Код сломается или уже работает не так, как задумано | Reliability |
| Vulnerability | Дыра, через которую можно атаковать приложение | Security |
| Code smell | Код работает, но его тяжело читать и менять | Maintainability |
| Security hotspot | Чувствительное место, требует ручной проверки | Security |
Подробности по классификации лежат в документации Sonar про Clean Code.
Какие бывают редакции SonarQube и что дает бесплатная?
Четыре ступени: Community Build, Developer, Enterprise, Data Center. Бесплатная закрывает анализ main-ветки на 20+ языках, платные добавляют ветки и pull request.
Community Build распространяется под лицензией LGPL, ставится на свой сервер и не требует оплаты. Ограничения: анализ только основной ветки, нет декорации pull request, нет taint-анализа и детекта секретов. Developer добавляет ветки, PR и языки C, C++, Objective-C, Swift, PL/SQL, T-SQL, ABAP. Enterprise дает портфели проектов и отчеты по безопасности.
| Редакция | Ключевое отличие | Кому подходит |
|---|---|---|
| Community Build | Бесплатно, 20+ языков, только main | Пет-проекты, MVP, знакомство с инструментом |
| Developer | Анализ веток и pull request, +C/C++/Swift | Команды с нормальным git-флоу |
| Enterprise | Портфели, отчеты по OWASP и CWE | Много команд, аудит, комплаенс |
| Data Center | Кластер, отказоустойчивость | Крупные компании с сотнями проектов |
Стоимость платных редакций считается по строкам кода и меняется, поэтому конкретные суммы смотрите на sonarsource.com напрямую.
Отдельно. В хвосте поисковых запросов много просьб про лицензионные ключи Data Center с торрентов. Эту тему мы не разбираем: бесплатная Community Build честно покрывает большинство задач.

Как запустить первый анализ проекта за вечер?
Четыре шага: поднять сервер, создать проект и токен, прогнать sonar-scanner, разобрать отчет. На небольшом репозитории это реально сделать за один вечер.
Самый быстрый путь это официальный образ SonarQube на Docker Hub. Поднимаете контейнер, открываете интерфейс на порту 9000, логинитесь под admin и сразу меняете пароль. Сервер требует несколько гигабайт оперативной памяти, на минимальном VPS за 200 рублей он не заведется. Деталям установки посвящена отдельная статья.
Шаг 1. Как поднять сервер?
Берите официальный образ на Docker Hub и запускайте с пробросом порта 9000. Для теста хватит машины с 4 ГБ памяти. Для российской аудитории удобен VPS с оплатой в рублях, тот же Timeweb: лицензия для Community Build не нужна, зарубежная карта тоже.
Важный момент про данные. Без подключенных томов база живет внутри контейнера и умрет вместе с ним. Тома подключаем сразу, потом будет обидно.
Шаг 2. Как создать проект и токен?
В интерфейсе жмете Create Project, задаете ключ проекта (обычно это имя репозитория) и выпускаете токен анализа. Токен это то, чем сканер представляется серверу вместо пароля.
Храните его в секретах CI. Не в sonar-project.properties, который лежит в git. Проверено на чужих граблях: токен, уехавший в публичный репозиторий, живет ровно до первого бота.
Шаг 3. Как запустить сканер?
Положите в корень проекта файл sonar-project.properties с ключом проекта и путями к исходникам, затем запустите sonar-scanner, передав адрес сервера и токен. Для JavaScript и Python отдельная сборка не нужна, для Java анализ идет через плагин Maven или Gradle.
На репозитории в пару тысяч файлов прогон занимает минуты. Первый запуск обычно дольше: сканер тянет анализаторы языков.
Шаг 4. Как читать первый отчет?
Отчет пугает. На старом проекте нормально увидеть несколько сотен замечаний, у команды leboncoin первый прогон дал около тысячи code smells.
Не чините все подряд. Отсортируйте по severity, пройдите блокеры в разделах безопасности и надежности, остальное оставьте в бэклоге. Типы замечаний расписаны в документации про issues.

Что такое Clean as You Code и почему это главное для новичка?
Подход, при котором планка качества применяется только к новому коду. Старые долги живут в бэклоге и чинятся постепенно, а quality gate стережет свежие изменения.
Дефолтный quality gate Sonar way проверяет новый код по рейтингам: reliability, security и maintainability не хуже A, покрытие новых строк выше порога, дубли ниже порога. Старый код в расчет не идет. Логика простая: вы отвечаете за то, что написали сегодня, а не за legacy, который писали до вас три года.
Именно это спасает проект от сценария «поставили SonarQube, увидели 900 замечаний, выключили SonarQube». Первый прогон фиксирует точку отсчета, дальше растет только чистая часть.
Максим: «Мог просто засесть до пяти ночи и править одну какую-то функцию, которая не работала. Если бы не терпение, в моменте я уже испотел и хотел просто все это закрыть. Но я понимал, что это можно решить и нужно решить, чтобы идти дальше.»
Вот здесь статический анализ и экономит нервы: он показывает координату проблемы вместо ночного перебора гипотез.
Для вайбкодера правило еще жестче. Модель генерирует код итерациями, и без внешнего контроля качество плывет от промпта к промпту.

Какие есть аналоги SonarQube?
Semgrep и CodeQL сильнее по безопасности, Qodana удобнее в экосистеме JetBrains, DeepSource и Codacy проще в подключении, PVS-Studio берет C++ и 1С.
Рынок статического анализа не сводится к одному инструменту. SonarQube силен универсальностью и метриками качества, CodeQL ищет цепочки эксплуатации через запросы к графу кода, Semgrep берет скоростью и простыми правилами в YAML. Выбор зависит от того, что важнее: поддерживаемость кода или поиск уязвимостей.
| Инструмент | Сильная сторона | Формат |
|---|---|---|
| Semgrep | Быстрые кастомные правила, низкий порог входа | Cloud и self-hosted |
| CodeQL | Глубокий security-анализ, нативен для GitHub | Cloud |
| Qodana | Движок инспекций JetBrains, связка с IDE | Cloud и self-hosted |
| DeepSource | Автофиксы, быстрая настройка | Cloud |
| Codacy | Агрегация чужих линтеров в одном интерфейсе | Cloud |
| PVS-Studio | C, C++, C#, Java, есть российская поддержка | Self-hosted |
Цены у всех считаются по-разному: по разработчикам, по строкам, по репозиториям. Сверяйтесь на официальных сайтах, любые цифры тут устареют быстрее статьи.
Если настройку пайплайна вы хотите отдать агенту, посмотрите готовый сценарий в каталоге ИИ-агентов для devops.

Честные ограничения SonarQube
Инструмент работает по правилам. Нет правила, значит нет и замечания: логику, архитектуру и продуктовые решения он не проверяет.
Три ограничения, о которых стоит знать до внедрения. Первое: ложные срабатывания случаются, особенно среди уязвимостей, где Sonar сам заявляет целью 80% истинных, а не 100%. Второе: половина возможностей зависит от редакции, и декорации pull request в бесплатной Community Build нет. Третье: SonarQube не заменяет ни тесты, ни ревью человеком.
Он не скажет, что вы написали неправильную бизнес-логику. Для него корректный по синтаксису расчет скидки с перепутанным знаком это чистый код.
И тесты он тоже не пишет. Покрытие SonarQube только показывает, получая цифры от вашего инструмента вроде jest или coverage.py. Нет отчета о покрытии, нет и метрики.
Отдельная честная оговорка про большие legacy-проекты. Там первый отчет демотивирует так, что команда закрывает вкладку. Помогает только Clean as You Code: планка на новый код и никакого героического рефакторинга в первую неделю.

FAQ
SonarQube бесплатный?
Community Build бесплатен под лицензией LGPL. Ставите на свой сервер, анализируете 20+ языков, платите только за железо. Платные редакции добавляют анализ веток, декорацию pull request и языки вроде C++ и Swift.
Чем SonarQube отличается от линтера?
Линтер сидит в редакторе и проверяет файл. SonarQube анализирует проект целиком на сервере, хранит историю, считает покрытие и дубли и умеет уронить сборку через quality gate, если новый код не проходит порог.
Сколько времени занимает первый анализ?
На небольшом проекте от подъема сервера до отчета уходит вечер. Сам прогон сканера на паре тысяч файлов это минуты. Дольше всего настраивается связка с CI и разбор первых замечаний.
SonarQube находит все ошибки?
Нет. Он видит то, что описано правилом. Ошибки в бизнес-логике, кривая архитектура и неудачный UX остаются на вас. Тесты и ревью человеком никуда не уходят.
Можно ли поднять SonarQube на российском хостинге?
Да. Community Build ставится на обычный VPS с оплатой в рублях, например Timeweb. Нужен Docker и несколько гигабайт памяти. Лицензионные ключи и зарубежные карты для бесплатной редакции не нужны.
Что выбрать для кода, который пишет нейросеть?
Начните с Community Build на main-ветке. Если команда работает через pull request и хочет видеть замечания прямо в PR, нужна Developer Edition. Для соло-вайбкодера бесплатной хватает надолго.
Есть ли смысл ставить SonarQube на пет-проект?
Смысл появляется, когда проект живет дольше месяца и в нем больше пары тысяч строк. На лендинге, собранном за вечер, толку мало. На SaaS с платящими пользователями толк есть сразу.
С чего начать на практике
Поднимите Community Build на тестовом VPS и прогоните им свой последний проект. Полчаса на сервер, десять минут на сканер, дальше просто читаете отчет и понимаете, где ваш код протекает.
Инструменты, которые этот код пишут, мы разобрали в каталоге AI-инструментов и IDE: там есть подробные обзоры Cursor, Windsurf и Claude Code с ценами и ограничениями.
А если нужно собрать пайплайн под конкретный продукт и не потратить на это месяц, запишитесь на консультацию к Максиму. Разберет ваш стек и скажет, что чинить первым.
Обновлено: октябрь 2026. Данные по редакциям и правилам сверены с официальной документацией Sonar.