Код ревью
Код ревью - проверка кода другими пользователями (ревьюерами), являющимися соавторами репозитория. Вы можете добавить одного или нескольких ревьюеров в запрос на слияние.
Ревьюеры, а также другие пользователи, имеющие доступ к репозиторию, могут оставлять комментарии к строкам кода и участвовать в обсуждении.
Ревьюеры могут оставлять обычные комментарии, которые сразу будут видны автору запроса или работать в режиме рецензирования. Тогда комментарии остаются скрытыми от автора, пока ревьюер не опубликует ревью.
Ручное ревью
Перейдите на страницу запроса, например, с вкладки Запросы в профиле репозитория.
Пример:
Оставьте комментарий к строкам:
- перейдите на вкладку Измененные файлы;
- наведите на строку и нажмите на появившуюся пиктограмму (в виде плюса).
Пример:
Для выбранной строки:
- напишите комментарий;
- нажмите Начать ревью, чтобы в основании страницы появилась панель для публикации ревью.
Пример:
Если при комментировании строк вы нажали Начать ревью, то в основании страницы появится панель. Далее :
- (опционально) добавьте комментарий;
- выберите результат проведения ревью:
- Комментировать;
- Утвердить (недоступно автору запроса);
- Запросить правки (недоступно автору запроса);
- нажмите Опубликовать ревью.
Пример:
Быстрое ручное ревью
Для проведения ревью без комментирования отдельных строк кода на вкладке Измененные файлы на странице запроса:
- нажмите Провести ревью;
- (опционально, если требуется только утвердить) добавьте к запросу;
- выберите результат проведения ревью:
- Комментировать (требуется комментарий);
- Утвердить (недоступно автору запроса);
- Запросить правки (недоступно автору запроса или, если не был оставлен комментарий);
- нажмите Опубликовать ревью.
Пример:
AI ревью
На странице запроса, на вкладке AI-ревью вы можете получить ревью от ИИ. Быстрый переход на вкладку AI-ревью доступен с вкладки Обсуждение.
Если репозиторий приватный, то вкладки AI-ревью не будет, а кнопка заблокируется. В таком случае в соавторы следует добавить техническую учетную запись aigigaview.
AI-ревью проверяет исходный код программы с целью обнаружения и исправления ошибок, которые остались незамеченными в начальной фазе разработки.
Анализ качества проводится в рамках запроса на слияние.
Функционал AI-ревью доступен только для авторизованных пользователей.
На данный момент функция представлена только для репозиториев на языках Java, JavaScript, TypeScript.
Вызов AI-ревью
Перейдите на страницу запроса, например, с вкладки Запросы в профиле репозитория.
Пример:
Нажмите на кнопку AI-ревью или на вкладку AI-ревью.
Пример:
Нажмите Начать AI-ревью.
Пример:
Начнется процесс загрузки данных.
Пример:
Через некоторое время отобразится результат AI-ревью. На странице отчета доступна кнопка переключения языка:
AI-ревью приватного репозитория или профиля
Если репозиторий приватный или профиль приватный, то для разблокирования кнопки AI-ревью требуется добавить приватную техническую учетную запись aigigaview для включения функциональности AI-ревью.
Если кнопка AI-ревью заблокирована, перейдите в настройки репозитория для добавления приватной технической учетной записи aigigaview.
Пример:
Далее:
- перейдите на вкладку Соавторы;
- введите aigigaview в поле для добавления соавторов (учетная запись приватная и в поиске не отобразится);
- нажмите Добавить.
Пример:
Если имя введено верно, то aigigaview добавится в соавторы::
После добавления технической учетной записи aigigaview кнопка AI-ревью разблокируется и появится одноименная вкладка.
Пример:
Метрики AI-ревью
-
Трудозатраты (Time cost hours) – суммарная оценка трудозатрат разработчиков в часах с учетом работ на понимание исходного кода и планирования изменений в нем, написание изменений, рефакторинг, тестирование, дебаггинг и документирование результатов.
-
Средняя оценка качества (Quality Score) – среднее значение по 9 критериям качества. (Оценка по шкале от 1 до 5):
- Понятность кода (Readability) – насколько легко другим разработчикам понять код. Это включает в себя четкие наименования переменных, функций и классов, а также общую структуру и организацию кода.
- Поддерживаемость кода (Maintainability) – насколько легко модифицировать и расширять код в будущем. Поддерживаемый код снижает затраты и усилия на будущую разработку и исправление ошибок.
- Производительность кода (Performance) – насколько эффективно выполняется код. Это включает оценку того, оптимально ли код использует ресурсы, такие как процессор, память, дисковое пространство и пропускную способность сети.
- Безопасность кода (Security) – обеспечение того, чтобы изменения кода не приводили к появлению каких-либо уязвимостей, которыми могли бы воспользоваться злоумышленники.
- Консистентность кода (Consistency) – соблюдение установленных стандартов и практик кодирования в рамках документа или общих стандартов. Согласованность облегчает навигацию по базе кода и ее понимание, снижает вероятность ошибок и упрощает поддержку и расширение кода.
- Документируемость (Documentation) – качество и полнота комментариев и документации, прилагаемых к коду.
- Обработка исключений (Error Handling) – код должен обрабатывать потенциальные ошибки или исключения, которые могут возникнуть во время выполнения.
- Интегрируемость кода (Integration) – насколько хорошо изменения кода интегрируются с остальной частью системы. Это означает, что они не должны нарушать существующую функциональность или вызывать конфликты с другими частями. Если код взаимодействует с внешними системами или библиотеками, он должен делать это корректно и эффективно. Это может включать использование правильных вызовов API, правильную обработку ответов и надлежащее управление ресурсами.
- Работоспособность (Functionality) – Проверка того, правильно ли изменения в коде выполняют намеченные задачи. Это включает проверку того, работают ли новые функции, модификации или исправления ошибок, внесенные в код, как ожидалось. Это также включает оценку того, могут ли изменения потенциально привести к новым ошибкам или проблемам.
-
Time Cost (hours) – оценка общей трудоемкости создания изменений в анализируемом коде (в часах). Складывается с учетом следующих затрат:
- Understanding the Code Changes – включает в себя анализ исходного файла с кодом и понимание контекста изменений.
- Writing Code – включает в себя не просто ввод кода, но и продумывание логики, обеспечение того, чтобы он хорошо вписывался в существующий код и соответствовал стандартам кодирования.
- Code Refactoring – возможно, потребуется провести рефакторинг некоторых частей существующего кода с учетом новых изменений. Это может включать изменение структуры кода или переписывание определенных частей для улучшения читаемости или производительности.
- Testing – выполнение модульных и интеграционных тестов, чтобы убедиться, что новые изменения работают должным образом и не нарушают существующую функциональность. Это включает в себя написание тестовых примеров, запуск тестов и устранение любых возникающих проблем.
- Debugging – если во время тестирования выявляются какие-либо проблемы или баги, разработчику необходимо отладить код и устранить эти проблемы.
- Documentation – обновление документации, чтобы отразить новые изменения. Это может включать встроенные комментарии в коде, обновление файла README или обновление любой внешней технической документации.
-
Генерация описания требований по задачам – по совокупности изменений в запросе на слияние, связанных с задачами, будут сгенерированы описания требований из кода (отдельно вариант для аналитиков/тестировщиков, отдельно вариант для разработчиков), даны общие рекомендации при обнаружении потенциальных проблем, а также оценены трудоемкость и качество реализации. Это позволит уточнить соответствие реализации исходным требованиям и выявить возможные риски. Более детальный анализ качества доработок будет доступен по связанным запросам на слияние.