Каталог решений - Ревьювер. Инструмент для проведения code review

Ревьювер. Инструмент для проведения code review

Ревьювер. Инструмент для проведения code review

В наличии

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

Категория:

Описание

В этой статье я хотел бы поделиться с вами нашим внутренним инструментом для проведения ревью. Данный инструмент заметно упростил процесс ревью на определенном этапе работы.

На момент создания данного инструмента в команде было задействовано 15 разработчиков, и 6 из них занимались проведением ревью кода. 

Результаты ревью фиксировались в комментариях в JIRA, что позволяло всем членам команды быть в курсе проделанной работы и результатов проверки.

Используется более 5 конфигураций, включая ЗУП, БП, УАТ2, ЕРП УХ, КА 1.1. 

У нас возникали проблемы с ограниченностью ресурсов при использовании EDT для перехода всей команды.

SonarQube используется в работе, но он проверяет только основное хранилище. 

Разработчик реализуют задачу в своей базе потом переносит это в общее хранилище. 

Мы активно работаем над решением проблемы, связанной с выполнением проверок SonarQube на базе разработчика, в которой он реализовал задачу, до помещения кода в общее хранилище. Также хотим перенести процесс ревью в GitLab. Пока мы ищем оптимальное решение нужен был инструмент, который упростит процесс ревью и уменьшит объем рутинной работы.

Возникновение идеи было связано с желанием упростить процесс написания комментариев и обеспечить единый стандарт оформления. Цель — помочь разработчикам максимально быстро решать возникающие проблемы и сократить время ревьювера на рутинную работу.

На слайде приведен пример комментария и его составных частей. Особое внимание следует уделить блоку повторяющихся ошибок. Если за последний месяц одинаковая ошибка была совершена более одного раза и превышает установленный лимит, то в конце комментария добавляется блок со статистикой этих ошибок. Цель – самостоятельная работа над ошибками, чтобы ревьюверам не приходилось следить и напоминать об одних и тех же проблемах.

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

 

 

В настоящее время в систему загружено 213 ошибок и 53 категории включая ошибки BSL и ошибки из других источников. В конце статьи будут прикреплены несколько ссылок на материалы по code review, которые мы использовали для обнаружения и исправления ошибок.

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

Пока что, для нас использование отдельного инструмента оказалось более эффективным, чем добавление собственных проверок в SonarQube. Такой подход позволяет нам быстро находить и исправлять ошибки, не затрачивая много времени на разработку и настройку собственных проверок в SonarQube.

Работа со скриншотами построена на внешней компоненте VanessaExt, работа идет через буфер обмена.

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

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

Для удобства работы с кодом встроен редактор, который многие встречали на просторах , основывающийся на редакторе Monaco. Также было добавлено улучшенное форматирование кода OneStyle, входящее в первую версию Smart Configurator

Редактор кода используется для добавления решения на уровне ошибки и в самом документе.

Кроме того, разработчики следят за форматированием кода и для этого используют еще один внутренний инструмент ones-formatting на основе двух версий Smart Configurator. Это позволяет существенно упростить работу с кодом в системе 1С и повысить эффективность работы разработчиков.

Справочник "Ошибки" является основным объектом в работе подсистемы. Каждый элемент справочника содержит информацию о типе и важности ошибки, которые знакомы нам по SonarQube.

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

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

Например, можно отключить практически все функции, кроме отправки комментариев в JIRA. Это удобно для тех, кто не нуждается во всех функциях подсистемы, но хочет использовать ее только для комментирования задач в JIRA.

Из всех настроек стоит отдельно остановится на показателях:

  • Использовать вес ошибки. В SonarQube мы анализируем ошибки в разрезах тип и важность, а это альтернативный вариант анализа динамики совершенных ошибок, для тех кому удобнее анализировать в числовом формате. Каждой ошибке задается ее вес.
  • Использовать стори поинты. Этот абстрактный  показатель был разработан для объединения в себе размер и сложность задачи.

Развитие блока аналитики не является приоритетным на данный момент. Пока идет накопление данных в системе для дальнейшего анализа.

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

Реализована работа с метаданными проекта.

Для выгрузки метаданных из конфигурации используется специальная обработка "ВыгрузкаМетаданныхПроекта.epf", которая позволяет выгрузить метаданные в формате JSON. Кроме того, есть возможность частичной выгрузки метаданных.

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

Функционал по работе с метаданными проекта позволяет привязывать замечания к метаданным в документе "Ревью". Для этого в табличную часть "Замечания" были добавлены два новых реквизита: проект и метаданные.

При добавлении первой строки в табличную часть открывается форма выбора проекта, после чего сразу же открывается выбор метаданных. Для последующих строк проект уже заполняется автоматически, что позволяет быстро и удобно привязывать замечания к метаданным проекта.

Благодаря последним обновлениям, теперь в редакторе кода стало проще работать с метаданными проекта. Новый функционал позволяет передавать метаданные проекта прямо в редактор кода, что существенно экономит время и упрощает процесс написания кода.

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

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

Новый формат комментариев в JIRA: комментарии разделены по проектам и метаданным.

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

Разработка начиналась с нуля без использования БСП, поскольку необходимо было проверить несколько гипотез.

В дальнейшем были добавлены некоторые подсистемы БСП для обеспечения работы нескольких пользователей.

Среди основных добавленных подсистем можно выделить:

  • Дополнительные отчеты и обработки
  • Управление доступом. Добавлены два поставляемых профиля: ревьювер, тимлид
  • Даты запрета изменения
  • Версионирование объектов
  • Контактная информация. Для заполнения электронной почты сотрудника и использование ее в интеграциях

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

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

Для написания юнит-тестов используем YAXUnit.

Для расчета покрытия тестами используем Coverage-cli.

На данный момент покрытие тестами составляет 40 процентов только за счет юнит-тестов. Для увеличения этого показателя будем добавлять сценарные тесты. Увеличение покрытия тестами позволит повысить качество кода и уменьшить количество ошибок при разработке, что в конечном итоге приведет к более стабильной работе инструмента.

По интеграциям в планах Sonar и GitLab. Также добавить отдельную подсистему для управления проектами, загрузкой ошибок и статистики из SonarQube.

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

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

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

Открытие проекта для сообщества на GitHub для наращивания функционала и решения проблем, с которыми сталкиваются другие команды. В репозитории пока будут размещаться презентации, статьи, планы и другая информация о проекте.
 

FAQ

Что делать, если нужно отразить не ошибку, а предложение по доработке?

Для того чтобы добавить предложение по доработке без фиксации ошибки достаточно не заполнять ошибку в документе “Ревью”.

Как реализовано повторное ревью?

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

Для более удобного проведения повторного ревью сейчас рекомендуется следующий подход: создание нового комментария под уже существующим и прикрепление к нему необходимых файлов. Таким образом вся информация в одном месте.

 

P.S.

По вопросам и предложениям можете создать issues на GitHub.

Также хотелось бы поддержать проект saby v8unpack – утилита для сборки и распаковки бинарных файлов 1С:Предприятие 8.х (cf, cfe, epf) без использования технологической платформы с максимально приближенной структурой метаданных.

Материалы

Инструменты

 

has been added to your cart:
Оформление заказа