Итак, представляю вам коммерческий продукт Серебряной Пули — плагин для SonarQube, реализующий поддержку языка 1С:Предприятие.

Что он делает? – выдает технический долг и его динамику в денежном выражении.

Перед ответами же на вопросы «Как?» и «Зачем?» следует немного отвлечься. В эту статью вы могли попасть 2 способами – либо по ссылкам из статей про собственно SonarQube и Continuous Inspection, либо вас привлекло название и, в таком случае, вы можете не знать об употребляемых терминах вроде технического долга и непрерывной проверки исходного кода. В любом случае, предлагаю освежить знания:

Теперь же, когда мы с вами говорим на одном языке, стоит ответить на оставшиеся вопросы:

Как? – SonarQube, будучи платформой, предоставляет некие средства, с помощью которых мы задаем правила проверки кода, формируем отчеты и получаем искомое число – число трудодней технического долга, которое путем умножения на стоимость работы инженера-разработчика превращается во вполне реальные потенциальные затраты на поддержку кода.

Если же напрямую отвечать на вопрос «Как?», то ваш исходный код разбирается на ключевые составляющие (имена функций, операнды, знаки препинания, комментарии и т.д.), из них строится древовидная структура кода, и далее уже получившееся дерево прогоняется по проверкам (на самом деле, уровней абстракции куда больше).

Зачем? – с точки зрения бизнеса, для которого пишется код, сумма потенциальных затрат уже является ответом на вопрос; с другой стороны, отчеты, формируемые системой, показывают, кто именно и где допустил какие-то ошибки, сколько привнес технического долга в дополнение к уже имеющемуся, позволяют делать прогнозы и принимать необходимые решения (например, выделить 1 день в неделю на рефакторинг).

При этом нужно понимать, что плагин не проверяет ваш код на функциональность! Это должны делать автотесты, отдел тестировщиков и иже с ними (вы же работаете по TDD и BDD?).

Так что же проверяет ваш плагин?плагин проверяет код на качество: количество и критичность ошибок, процент копипаста, сложность понимания кода (поддержки), потенциальные уязвимости – формируя тот самый технический долг в динамике.

И как же мне внедрить плагин в мой процесс разработки? – особых сложностей нет, вы разворачиваете в своей инфраструктуре сервер SonarQube, активируете плагин, задаете расположение проекта и настройки проверок и оповещения... Вообще, за этим вот сюда:


По вопросам активации плагина, внедрению непрерывной проверки кода в процесс разработки обращайтесь по указанным контактным данным:

СТОП! А ВЕДЬ ЕСТЬ ЖЕ АПК?! – конечно, мы полностью поддерживаем инициативу компании 1С повышать качество кода, да и модель распространения «проверятора от 1С» вполне располагает к его использованию; однако дьявол всегда кроется в деталях:

  • SonarQube (SQ) проверяет код быстрее (разница в районе полутора порядков);
  • Есть вопросы к удобству использования АПК;
  • В АПК вам придется назначать ответственных за ошибки, хотя ответственным должен быть написавший код;
  • Список проверок в нашем плагине регулярно пополняется (в том числе автором этой статьи);
  • SonarQube предоставляет средства для самостоятельного написания проверок (да, сверху нашего плагина вы сможете прикрутить свои проверки);
  • Функциональность плагина на момент написания статьи на 88,8% покрыта модульными тестами (он действительно проверяет);
  • Плагин написан на Java и проверен самим SonarQube:

АПК выдаст вам количество ошибок и позволит назначить ответственных; при использовании SonarQube с нашим плагином вы получите полный отчет о процессе разработки с адекватной оценкой временных (читай, денежных) затрат на поддержку с указанием ответственных. Выбор за вами.

Вы нашли ответ?