Раздел 3. Возможности подсистемы
Таблица 1. Краткая таблица возможностей
Поддерживаемые ОС | Windows, Linux, Free BSD |
---|---|
Интеграция с системой контроля версий | Да |
Необходимость наличия лицензии 1С | Нет |
Правила анализа кода 1С-решений | 600+ |
Правила анализа запросов 1С | 20+ |
Правила анализа метаданных конфигураций 1С | Да |
Метрики | Да |
Сканирование в сборочном контуре / Ручное сканирование | Да / Да |
Анализ покрытия кода тестами | Да |
Настройка анализа исходников | Да |
Ведение истории проблем | Да |
Указание автора проблемы | Да |
Оповещение о проблемах на почту | Да |
Производительность | Очень высокая |
Скорость проверки ERP 2 (более 5 млн. строк кода) | 40 мин |
Возможность создания собственных правил | Да |
Интеграция результатов анализа и описания правил 1С:АПК и SonarQube | Да |
Интеграция результатов 1C:EDT и SonarQube | Да |
В результате внедрения подсистемы "SonarQube 1C (BSL) Plugin" для управления качеством кода вы получите централизованную систему хранения и отображения метрик кода, позволяющую оценивать и прогнозировать риски проекта, это не только упрощает развертывание и поддержку этой системы, но и позволяет совершить качественный скачок в сфере управления проектами, предоставляя всем заинтересованным участникам средства для мониторинга состояния проекта и принятия взвешенных решений на основании метрик. Фактически для менеджера SonarQube – один из инструментов ALM (Application Lifecycle Management).
Особенности платформы SonarQube:
- Поддержка языков Java, C, C++, C#, Objective-C, Swift, PHP, JavaScript, Python и другие
- Предоставляет отчеты о дублировании кода, соблюдении стандартов кодирования, покрытия кода модульными тестами, возможные ошибки в коде, плотность комментариев в коде, технический долг и другое.
-
Обеспечивает полностью автоматизированный анализ: интегрируется с Maven, Ant, Gradle и распространенными системами непрерывной интеграции.
-
Позволяет выполнять автоматический анализ на серверах непрерывной интеграции: Jenkins, Gitlab, TFS, VSTS, Azure DevOps, Bamboo и другими распространенными серверами непрерывной интеграции.
- Позволяет интегрироваться с такими IDE, как Visual Studio, IntelliJ IDEA и Eclipse с помощью плагина SonarLint.
- Обеспечивает интеграцию с внешними инструментами: JIRA, Mantis, LDAP, Fortify и т.д.
- Реализует методологию SQALE для оценки технического долга.
Функциональные возможности подсистемы:
- Проверка на качество каждого изменения кода 1С
-
Как только программист поместил свой код в центральный репозиторий, SonarQube получает оповещение о данном событии и запускает анализ качества кода. Автор изменений получает список задач на исправление, если в процессе проверки выявлены замечания.
-
Непрерывный контроль разработки релиз-менеджером
-
Релиз-менеджер, руководитель проекта и заказчик, используя метрики, всегда видят детальную информацию о состоянии проекта до официального выпуска релиза и развертывания в продуктив. Следовательно, принимаемое ими решение о выпуске релиза конфигурации 1С становится осознанным.
-
Контроль за "техническим долгом"
-
Знакомая всем ситуация: поддерживать систему стало сложнее, чем «переписать все с нуля». Понятие «технического долга» определяет количество времени, которое нам потребуется, чтобы привести систему в идеальное состояние. Как подсказать команде, где нужно приложить усилия по повышению качества продукта? Нужно применять анализатор кода и управлять процессом накопления технического долга.
-
Анализ динамики проблем
- Для владельца продукта и руководителя проекта важно не то, сколько проблем в коде имеется на данный момент, как то, растет ли количество проблем с течением времени. Куда движется команда? Порождает ли она еще больший хаос в коде? Постоянный анализ качества позволяет отследить момент, когда решения, принятые "на скорую руку", начинают утяжелять сопровождение системы.
В результате использования подсистемы мы получаем:
- Анализ дублирования кода
-
Автоматическое выявление фрагментов дублированного кода во всех модулях для определения методов, требующих выделения в библиотечные методы
-
Анализ запутанности кода
-
Поиск наиболее запутанных участков, требующих больших затрат на поддержку, с целью рефакторинга
-
Непрерывные проверки
-
Проверка каждого помещения в хранилище 1С (или в DCVS репозиторий) с контролем автора и выдачей персональных рекомендаций на рефакторинги
-
Каждая строка кода проверяется на предмет качества кодирования, дублирования, запутанности и сложности.
-
Как результат, известно, насколько код плохой и можно ли его без опаски изменить.
-
Возможность интеграции проверок, проводимых различными инструментами статического анализа кода, в т.ч. «АПК» и «EDT».
-
Возможность контроля процента покрытия кода автоматическими тестами.