Перейти к содержанию

Раздел 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».

  • Возможность контроля процента покрытия кода автоматическими тестами.