Рубрики
Uncategorized

Улучшите качество вашего кода с Sonarlint и Sonarqube

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

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

Эти тесты все считаются «динамическими тестами», поскольку они выполняются против текущего приложения.

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

Статический анализ кода оценивает ваш исходный код статически, не запуская его. Некоторые области могут обратиться:

  • Определение чрезмерно сложного кода
  • нахождение вопросов безопасности
  • Обеспечение лучших практик
  • Выявление вопросов ремонтопригодности
  • Предоставление метрик охвата тестирования
  • обеспечить общий язык на основе команд правила
  • интеграция в ваш сборнический трубопровод
  • и более!

У большинства современных IDES есть механизм для обеспечения анализа статического кода. Если вы не используете его сейчас, возьмите некоторое время, чтобы узнать, как ваш IDE поддерживает статический анализ. Если вы не запустили его в прошлом, вы, скорее всего, найдете некоторые интересные результаты.

Сонарлинт

В дополнение к анализу статического кода, которые могут быть запечены в вашу IDE, есть 3-й партийные плагины, такие как Сонарлинт Это позволяет вам проанализировать ваш код прямо в IDE.

Давайте посмотрим на быстрый пример. Для моей среды я использую Itellij Idex, и у меня установлен плагин Sonarlint.

У меня есть следующий метод Java:

    public int add(int my_FIRST_var, int my_SECOND_var) {
        System.out.print ("adding");
        return my_FIRST_var + my_SECOND_var;
    }

Теперь, если я посмотрю на этот метод в моем IDE, я вижу некоторые вещи, подчеркиваемые:

Первое, что я вижу, выделено, это переменная my_first_var Отказ Если я навязываю my_first_var Я получаю всплываю сонарлинт, который показывает мне проблему.

Я могу щелкнуть ссылку для более подробной информации и получить полное объяснение этой проблемы:

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

В дополнение к сонарлиту на основе IDE, Sonarqube Позволяет выполнять надежный статический анализ и стробирование как часть конвейера CI/CD.

Sonarqube имеет 4 основных архитектурных компонента:

  • Веб-сервер, обслуживающий пользовательский интерфейс
  • База данных, используемая для хранения исторических метрик для всех сканов кода
  • Компетентный двигатель, который выполняет сканирование кода и сохраняет метрики в базу данных
  • поисковая система на основе Elasticsearch для поддержки поиска пользователей

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

docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest

Затем вы можете просматривать localhost: 9000 И вы должны увидеть что-то вроде этого:

Мы еще не запустили сканирование, поэтому мы не видим никаких полезных данных. Я могу построить, тестировать и бить мое решение из командной строки с помощью простой команды, такой как МВН сонар: сонар

После того, как этот процесс завершится, я вижу результаты в Sonarqube:

Ну, я вижу немного зеленого, но и вижу красного. Похоже, код не пропустил качественные ворота. UI да обеспечит много дополнительных деталей для устранения неполадок, но наша главная проблема понятна прямо на странице обзора; Тестовое покрытие составляет всего 75%, и ему должно быть 80%, чтобы пройти проверку ворот.

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

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

Таким образом, вы идете, немного введение в анализ статического кода, а некоторые детали о создании SONARLINT и SONARQUBE на вашей рабочей станции. Если вы не используете анализ статического кода, выйдите вперед и установите плагин Sonarlint и посмотрите, что вы можете найти. Скорее всего, вы найдете некоторые вопросы для исправления. Вы также можете настроить Sonarqube на местном уровне и узнать о лучших практиках в ряде областей.

Для моего следующего поста я собираюсь сосредоточиться больше на Sonarqube. Я начну с некоторого кода .NET нуждается в помощи. Оттуда мы посмотрим, как включить Sonarqube на CI/CD-CD, и используйте экземпляр Sonarqube Counce, чтобы выполнить наши сканирование и метрики сканирования.

До скорого!

Оригинал: «https://dev.to/leading-edje/improve-your-code-quality-with-sonarqube-3kk6»