Код ревью

Код ревью - проверка кода другими пользователями (ревьюерами), являющимися соавторами репозитория. Вы можете добавить одного или нескольких ревьюеров в запрос на слияние.

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

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

Ручное ревью

  1. Перейдите на страницу запроса, например, с вкладки Запросы в профиле репозитория.

    Пример:

    Переход на страницу запроса с вкладки **Запросы** в профиле репозитория
  2. Оставьте комментарий к строкам:

    1. перейдите на вкладку Измененные файлы;
    2. наведите на строку и нажмите на появившуюся пиктограмму (в виде плюса).

    Пример:

  3. Для выбранной строки:

    1. напишите комментарий;
    2. нажмите Начать ревью, чтобы в основании страницы появилась панель для публикации ревью.

    Пример:

  4. Если при комментировании строк вы нажали Начать ревью, то в основании страницы появится панель. Далее :

    1. (опционально) добавьте комментарий;
    2. выберите результат проведения ревью:
      • Комментировать;
      • Утвердить (недоступно автору запроса);
      • Запросить правки (недоступно автору запроса);
    3. нажмите Опубликовать ревью.

    Пример:

Быстрое ручное ревью

Для проведения ревью без комментирования отдельных строк кода на вкладке Измененные файлы на странице запроса:

  1. нажмите Провести ревью;
  2. (опционально, если требуется только утвердить) добавьте к запросу;
  3. выберите результат проведения ревью:
    • Комментировать (требуется комментарий);
    • Утвердить (недоступно автору запроса);
    • Запросить правки (недоступно автору запроса или, если не был оставлен комментарий);
  4. нажмите Опубликовать ревью.

Пример:

AI ревью

На странице запроса, на вкладке AI-ревью вы можете получить ревью от ИИ. Быстрый переход на вкладку AI-ревью доступен с вкладки Обсуждение.

Если репозиторий приватный, то вкладки AI-ревью не будет, а кнопка заблокируется. В таком случае в соавторы следует добавить техническую учетную запись aigigaview.

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

Анализ качества проводится в рамках запроса на слияние.

Функционал AI-ревью доступен только для авторизованных пользователей.

На данный момент функция представлена только для репозиториев на языках Java, JavaScript, TypeScript.

Вызов AI-ревью

  1. Перейдите на страницу запроса, например, с вкладки Запросы в профиле репозитория.

    Пример:

    Переход на страницу запроса с вкладки **Запросы** в профиле репозитория
  2. Нажмите на кнопку AI-ревью или на вкладку AI-ревью.

    Пример:

    Переход на вкладку AI-ревью
  3. Нажмите Начать AI-ревью.

    Пример:

    AI-ревью кнопка
  4. Начнется процесс загрузки данных.

    Пример:

    Процесс загрузки данных

    Через некоторое время отобразится результат AI-ревью. На странице отчета доступна кнопка переключения языка:

    Результат AI-ревью

AI-ревью приватного репозитория или профиля

Если репозиторий приватный или профиль приватный, то для разблокирования кнопки AI-ревью требуется добавить приватную техническую учетную запись aigigaview для включения функциональности AI-ревью.

  1. Если кнопка AI-ревью заблокирована, перейдите в настройки репозитория для добавления приватной технической учетной записи aigigaview.

    Пример:

  2. Далее:

    1. перейдите на вкладку Соавторы;
    2. введите aigigaview в поле для добавления соавторов (учетная запись приватная и в поиске не отобразится);
    3. нажмите Добавить.

    Пример:

    Если имя введено верно, то aigigaview добавится в соавторы::

  3. После добавления технической учетной записи aigigaview кнопка AI-ревью разблокируется и появится одноименная вкладка.

    Пример:

    Переход на вкладку AI-ревью

Метрики AI-ревью

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

  2. Средняя оценка качества (Quality Score) – среднее значение по 9 критериям качества. (Оценка по шкале от 1 до 5):

    1. Понятность кода (Readability) – насколько легко другим разработчикам понять код. Это включает в себя четкие наименования переменных, функций и классов, а также общую структуру и организацию кода.
    2. Поддерживаемость кода (Maintainability) – насколько легко модифицировать и расширять код в будущем. Поддерживаемый код снижает затраты и усилия на будущую разработку и исправление ошибок.
    3. Производительность кода (Performance) – насколько эффективно выполняется код. Это включает оценку того, оптимально ли код использует ресурсы, такие как процессор, память, дисковое пространство и пропускную способность сети.
    4. Безопасность кода (Security) – обеспечение того, чтобы изменения кода не приводили к появлению каких-либо уязвимостей, которыми могли бы воспользоваться злоумышленники.
    5. Консистентность кода (Consistency) – соблюдение установленных стандартов и практик кодирования в рамках документа или общих стандартов. Согласованность облегчает навигацию по базе кода и ее понимание, снижает вероятность ошибок и упрощает поддержку и расширение кода.
    6. Документируемость (Documentation) – качество и полнота комментариев и документации, прилагаемых к коду.
    7. Обработка исключений (Error Handling) – код должен обрабатывать потенциальные ошибки или исключения, которые могут возникнуть во время выполнения.
    8. Интегрируемость кода (Integration) – насколько хорошо изменения кода интегрируются с остальной частью системы. Это означает, что они не должны нарушать существующую функциональность или вызывать конфликты с другими частями. Если код взаимодействует с внешними системами или библиотеками, он должен делать это корректно и эффективно. Это может включать использование правильных вызовов API, правильную обработку ответов и надлежащее управление ресурсами.
    9. Работоспособность (Functionality) – Проверка того, правильно ли изменения в коде выполняют намеченные задачи. Это включает проверку того, работают ли новые функции, модификации или исправления ошибок, внесенные в код, как ожидалось. Это также включает оценку того, могут ли изменения потенциально привести к новым ошибкам или проблемам.
  3. Time Cost (hours) – оценка общей трудоемкости создания изменений в анализируемом коде (в часах). Складывается с учетом следующих затрат:

    1. Understanding the Code Changes – включает в себя анализ исходного файла с кодом и понимание контекста изменений.
    2. Writing Code – включает в себя не просто ввод кода, но и продумывание логики, обеспечение того, чтобы он хорошо вписывался в существующий код и соответствовал стандартам кодирования.
    3. Code Refactoring – возможно, потребуется провести рефакторинг некоторых частей существующего кода с учетом новых изменений. Это может включать изменение структуры кода или переписывание определенных частей для улучшения читаемости или производительности.
    4. Testing – выполнение модульных и интеграционных тестов, чтобы убедиться, что новые изменения работают должным образом и не нарушают существующую функциональность. Это включает в себя написание тестовых примеров, запуск тестов и устранение любых возникающих проблем.
    5. Debugging – если во время тестирования выявляются какие-либо проблемы или баги, разработчику необходимо отладить код и устранить эти проблемы.
    6. Documentation – обновление документации, чтобы отразить новые изменения. Это может включать встроенные комментарии в коде, обновление файла README или обновление любой внешней технической документации.
  4. Генерация описания требований по задачам – по совокупности изменений в запросе на слияние, связанных с задачами, будут сгенерированы описания требований из кода (отдельно вариант для аналитиков/тестировщиков, отдельно вариант для разработчиков), даны общие рекомендации при обнаружении потенциальных проблем, а также оценены трудоемкость и качество реализации. Это позволит уточнить соответствие реализации исходным требованиям и выявить возможные риски. Более детальный анализ качества доработок будет доступен по связанным запросам на слияние.