На сегодняшний день это один из, или же самый известный способ автоматического анализа кода и его ревью. Популярностью он обязан тому, что этот сервис бесплатен и доступен, а так же для его установки не требуется много усилий. Интерфейс выглядит современно и понятно. Sonarqube, хоть и написан на java, не ест много ресурсов 🙂
«Тестирование программы может весьма эффективно продемонстрировать наличие ошибок, но безнадежно неадекватно для демонстрации их отсутствия.»
Эдсгер Вибе Дейкстра
Sonarqube Deploy
Самый простой и популярный способ работы с таким сервисами — найти образ на dockerhub и задеплоить с помощью docker-compose файла. Линк на его образ.
Но тут же кроется нюанс — Docker Host Requirements, так как sonarqube использует встроенный Elasticsearch и для корректной работы сервиса, необходимы указанные границы системных лимитов:
Обучающее видео Cakewalk by bandlab Часть I
sysctl -w vm.max_map_count=524288 sysctl -w fs.file-max=131072 ulimit -n 131072 ulimit -u 8192
Мой репо в Gitlab и Github с docker-compose.yml файлами. В Makefile есть единая инструкция для этих команд.
Назначение volumes:
- sonarqube/data , файлы с данными, тут лежат индексы эластика и еще некоторые вещи, которые Sonar хотел бы держать у себя на полке
- sonarqube/logs , логи веб процессов, сервисов которые использует Sonar
- sonarqube/extensions , для собственных плагинов (которые содержат правила анализа для всех языков)
Из коробки он имеет уже достаточно плагинов для анализа, но если вы нашли что-то кастомное или сделали сами , добавить это достаточно просто — просто поместить в volume с extensions.
Более подробно об установке я рассказываю в видео — Начало работы с Sonarqube.
В видео, я показываю, как сконнектить Sonar с Gitlab, для анализа проектов оттуда. Вместе с этим можно настроить возможность авторизоваться в Sonar используя учетные записи Gitlab.
Необходимо помнить о том, что хорошей практикой завести в Gitlab учетную запись для Sonarqube, и брать токен доступа оттуда, дабы при возникновении проблем с вашей собственной записью не потерять накопленный анализ и не настраивать все заново. Но всегда необходимо будет добавлять этого пользователя в проекты, и давать права не ниже Reporter.
Простые способы анализа проектов
Проект из Gitlab
Кому удобнее визуальная подача информации — ниже видео на эту тему. Посмотреть так же можно по ссылке.
Переводя на текст, могу сказать,что все что вам необходимо это:
- Связать Gitlab и Sonarqube, с помощью Access token пользователя.
- Проверить, что есть возможность инициализировать анализ репозиториев (появляется их список после того, как вы в главном меню вы добавляйте проект:
- Выбрать репозиторий и нажать «Set Up»
- Далее выбрать свою CI/CD систему и действовать по инструкции.
- Создать в репозитории файл sonar-project.properties. С указанием ключа и параметра, мониторящего связь с Sonarqube.
- Добавить две переменные окружения: SONAR_TOKEN и SONAR_HOST_URL
- Последний шаг: включить в CI файл stage со сканом
Бесплатная программа для создания музыки Cakewalk- Обзор возможностей
Мануальное добавление любого проекта
Здесь все по схожему сценарию, наибольшую роль играет файл sonar-project.properties .
- Для начала, в том же месте нужно добавить проект. Только теперь нам нужна кнопка Manually
- После этого необходимо создать ProjectKey (уникальный идентификатор проекта) и DisplayName (имя для проекта , которое будет отображаться в списке). Они могут быть разные.
- Далее нужно создать токен доступа, и назвать его так как вам нужно, он так же будет отображаться в профиле вашего пользователя и удалить его можно будет только оттуда
- Следующий шаг — выбрать стэк/сценарий для анализа,и следовать инструкции. В конце для вас будут представлены данные для properties файла проекта,либо команды для ручного запуска скана.
Составляющие sonar-project.properties файла
Файл из которого Sonarqube черпает инструкции для его работы. Самое полное описание возможных конфигов для проекта в докуметации к сервису. Привожу небольшую табличку с наиболее часто встречающимися.
Конфиг
Описание
Уникальный ключ для проекта, заведенный в Sonarqube
Источник: habr.com
Видеоуроки Cakewalk Sonar
Предупреждение: видеоуроки не профессиональные. Это даже скорее не уроки, а просто демонстрация того, как я работаю с программой, какие использую инструменты и как их использую.
Видеоуроки были записаны в 2008 году.
Вводный урок по Cakewalk Sonar.
Выполнение основных настроек в программе Cakewalk Sonar.
Подключение VST-плагинов в программе Sonar.
Создание музыки на основе готовых сэмплов в программе Cakewalk Sonar. Часть 1.
Создание музыки на основе готовых сэмплов в программе Cakewalk Sonar. Часть 2.
Создание минусовки в стиле rap на основе сэмплов. В этом уроке показано, как подогнать сэмпл с мелодией под сэмпл ударных. Часть 1.
Создание минусовки в стиле rap на основе сэмплов. В этом уроке показано, как подогнать сэмпл с мелодией под сэмпл ударных. Часть 2.
В этом видео разобран пример создания музыки с помощью VST-инструментов (драм машина, синтезаторы) и технологии MIDI. Часть первая.
В этом видео разобран пример создания музыки с помощью VST-инструментов (драм машина, синтезаторы) и технологии MIDI. Часть вторая.
В этом видео разобран пример создания музыки с помощью VST-инструментов (драм машина, синтезаторы) и технологии MIDI. Часть третья.
Источник: musicrec.ru
Используйте Sonar для управления качеством кода
В этой статье будет рассказано о создании и использовании Sonar, платформы управления качеством кода. Sonar — это платформа с открытым исходным кодом для управления качеством исходного кода. Вы увидите, как работает Sonar от установки до настройки, а также как использовать плагин Maven в своем проекте, чтобы легко управлять качеством кода.
1 комментарий:
24 апреля 2012 г.
Разработайте и разверните свое следующее приложение на облачной платформе IBM Bluemix. Начать пробную версию
Обзор сонара
Sonar — это открытая платформа для управления качеством кода. Благодаря механизму плагинов Sonar может интегрировать различные инструменты тестирования, инструменты анализа кода и инструменты непрерывной интеграции. В отличие от инструментов непрерывной интеграции (таких как Hudson / Jenkins и т. Д.), Sonar не просто отображает результаты различных инструментов проверки кода (таких как FindBugs, PMD и т. Д.) Непосредственно на веб-странице, но использует различные плагины для воспроизвести эти результаты.Для обработки изменения качества кода измеряются количественно, так что управление качеством кода может быть удобно выполнено для проектов разных масштабов и типов. Что касается поддержки других инструментов, Sonar не только обеспечивает поддержку IDE, вы можете просматривать результаты онлайн в инструментах Eclipse и IntelliJ IDEA; в то же время Sonar также обеспечивает поддержку интерфейса для большого количества инструментов непрерывной интеграции, которые можно легко продолжение Сонар используется в интеграции. Кроме того, плагины Sonar могут также обеспечивать поддержку языков программирования, отличных от Java, а также иметь хорошую поддержку интернационализации и документации отчетов.
Установка сонара
Sonar — это проект с открытым исходным кодом на Codehaus, использующий лицензию на программное обеспечение LGPL V3. Мы можем скачать его исходный код и установочный пакет на официальном сайте.
Исходный код должен использовать программное обеспечение для управления распределенными версиями Git для проверки (Check Out), командная строка выглядит следующим образом: git clone git://github.com/SonarSource/sonar.git Эта статья в основном знакомит с использованием сонара, нужно толькоВеб-сайт сонараПросто скачайте последнюю версию пакета, последняя версия на момент написания — 2.11. После загрузки zip-пакета распакуйте его прямо в любой каталог. Поскольку Sonar поставляется со средой сервера приложений Jetty 6. Его можно использовать без дополнительной установки. Стоит отметить, что Sonar также поддерживает развертывание на сервере приложений Apache Tomcat. В среде Windows вы можете напрямую запустить windows-x86-64 StartSonar.bat из каталога bin Soanr. Затем зайдите в браузере: http: // localhost: 9000 /
Рисунок 1. Интерфейс доступа к эхолоту.
Таким образом, Sonar успешно установлен и запущен, но в нем не установлен плагин. Пользователи должны загрузить и установить необходимые им плагины. В этом разделе в качестве примера используется подключаемый модуль индекса качества, чтобы показать, как загрузить и установить подключаемый модуль Sonar. Сначала зайдите на главную страницу Sonar. Панель управления> Sonar> Documentation> Путь к библиотеке плагинов Sonar
Рисунок 2. Загрузка плагина Sonar
Войдите в плагин Quality Index, щелкните путь загрузки
Рисунок 3. Загрузка плагина Quality Index
Затем поместите загруженный файл sonar-quality-index-plugin-1.1.3.jar в путь sonar-2.11 extensions plugins. Перезапустите Sonar, плагин запустится на платформе Sonar и начнет работать.
Настройки базы данных
- Создайте пользователя сонара в MySQL
# Comment the following lines to deactivate the default embedded database. #sonar.jdbc.url: jdbc:derby://localhost:1527/sonar;create=true #sonar.jdbc.driverClassName: org.apache.derby.jdbc.ClientDriver #sonar.jdbc.validationQuery: values(1) ~~~~~~~~~~~~~~ Часть опущена ~~~~~~~~~~~~~~~~~ #—— MySQL 5.x/6.x # Comment the embedded database and uncomment the following #properties to use MySQL. The validation query is optional. sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=truecharacterEncoding=utf8 com.mysql.jdbc.Driver sonar sonar http://localhost:9000
После загрузки данных, необходимых Soanr, на сервер Sonar, плагин, установленный Sonar, будет анализировать и обрабатывать данные и отображать их для пользователя различными способами, чтобы пользователь мог легко контролировать качество кода и управлять им.
Например, плагин Radiator может сортировать по размеру проекта и отображать качество кода с различными демонстрациями:
Рисунок 6. Дисплей подключаемого модуля радиатора
Конфигурация плагина Sonar
Как упоминалось ранее, основной функцией Sonar является повторная обработка результатов инспекций, полученных с помощью различных инструментов. Sonar также предоставляет пользователям метод персонализации данных.
В этом разделе в качестве примера используется подключаемый модуль Technical Debt, чтобы объяснить, как повлиять на окончательный результат отчета путем настройки параметров. Сначала поймите концепцию «технического долга» в этом плагине.
Эта концепция была впервые предложена Уордом Каннингемом в его статье «Система управления портфелем WyCash» в 1992 году, а затем была принята и продвинута сообществом разработчиков программного обеспечения. Мартин Фаулер , автор «Строительства», такжеинтернет сайтЕсть введение в технический долг. Фактически, принцип можно понимать как «рано или поздно придется расплачиваться». Текущий нестандартный код повлияет на стоимость будущих модификаций продукта.
Подключаемый модуль Soanr Technical Debt предоставляет формулу расчета по умолчанию, которую можно адаптировать к расчету технического долга различными компаниями и проектами путем настройки весовых параметров.
Рисунок 7. Формула расчета технического долга
Указанные выше показатели данных могут быть установлены в соответствии с различными ситуациями вашей компании и проекта, как показано на рисунке:
Рисунок 8. Интерфейс настройки сонара.
Например, показатели технической задолженности того же проекта при параметрах по умолчанию следующие:
Рисунок 9. Результаты технического долга при параметрах по умолчанию
Результат после изменения параметров:
Рисунок 10. Результат технического долга после настройки параметров.
Видно, что после изменения среднего времени покрытия сложности на единицу (в часах) с 0,2 на 0,01 вес покрытия становится меньше, что позволяет добиться эффекта игнорирования покрытия модульным тестом. Различные компании и проекты могут настраивать свои параметры в соответствии со своими потребностями, настройка параметров и стратегии выходят за рамки данной статьи.
Из приведенного выше примера видно, что Sonar использует разные типы диаграмм для отображения результатов качества пользовательского кода, и эти диаграммы не просто показывают покрытие модульным тестом или результаты статических инструментов обнаружения, но основаны на разработке программного обеспечения. Теория Результат после вторичной обработки более научный и интуитивно понятный.
Заключительные замечания
Sonar предоставляет платформу для управления качеством кода, интегрируя традиционные инструменты статического обнаружения кода, такие как PMD, FindBugs и т. Д. Его можно назвать одним из самых мощных инструментов управления качеством кода в настоящее время.
Ссылка
Учиться
- СсылкаSonarНа домашней странице просмотрите последнюю информацию о программном обеспечении Sonar.
- “Улучшение качества кода Java»(DeveloperWorks, апрель 2007 г.): эта тема объединяет большой профессиональный опыт, передовые методы и практические навыки экспертов по качеству кода. Содержимое охватывает теорию тестирования программного обеспечения, шаблоны ошибок и диагностику кода, статический анализ кода, тестирование на основе In термины, модульное тестирование, покрытие, инструменты тестирования и платформа тестирования IBM Rational, ее обширные статьи, учебные пособия и серии столбцов улучшат качество вашего кода!
- Зона технологий Java на сайте developerWorks: Есть сотни статей обо всех аспектах программирования на Java.
обсуждать
- ПрисоединитьсяКитайское сообщество developerWorks. Просматривайте блоги, форумы, группы и вики, продвигаемые разработчиками, и общайтесь с другими пользователями developerWorks.
Источник: russianblogs.com