Code-review
Раздел описывает процесс ревью изменений, правила перехода MR между статусами и порядок работы с правками в выпускном цикле.
1. Цель
Обеспечить единый процесс ревью, при котором изменения проходят техническую проверку до передачи в контур выпуска.
2. Базовые правила
- Merge request создается в статусе Draft.
- До перевода в Ready разработчик выполняет самопроверку.
- После назначения проверяющего запрещено вносить скрытые правки без уведомления.
- Любая правка по замечанию ревью или QA запускает новый цикл проверки.
3. Обязательная самопроверка разработчика
Перед переводом MR в Ready разработчик обязан:
- Проверить, что сборка и обязательные проверки проходят.
- Убедиться, что изменения соответствуют архитектурным и код-стандартам.
- Удалить временные решения, отладочный код и лишние комментарии.
- Обновить документацию, если меняется поведение функционала.
- Приложить краткий список изменений и рисков в описание MR.
4. Процесс ревью
- Разработчик переводит MR в Ready и назначает проверяющего.
- Проверяющий выполняет ревью:
- корректность логики;
- риски регрессий;
- влияние на производительность;
- влияние на интеграции и права доступа.
- По замечаниям ревью разработчик вносит правки и повторно уведомляет проверяющего.
- До подтверждения проверяющего MR не продвигается дальше.
5. Технический чек-лист проверяющего
При ревью проверяются не только измененные строки, но и последствия изменения для затронутого контура:
- В коде нет временных комментариев, закомментированных блоков старого кода, отладочных сообщений и подписей разработчика.
- Обработчики событий формы, объекта и менеджера не содержат бизнес-логику целиком, а передают управление в целевые процедуры и функции.
- Вложенность условий и циклов не мешает чтению. Граничные случаи вынесены в ранние проверки с
Возврат, если это упрощает код. - Сложные условия вынесены в переменные или отдельные методы с говорящими именами.
- Исключения не подавляются пустым блоком
Исключение; ошибки либо обрабатываются, либо передаются выше. - Транзакции не содержат внешних вызовов, сетевых операций и длительной обработки.
- Запросы сохраняют явные соединения, не выбирают лишние поля и остаются пригодными для открытия в конструкторе запросов, если это возможно.
- Сообщения пользователю и тексты ошибок объясняют, что произошло и какое действие требуется.
- Экспортные процедуры и функции имеют описание публичного интерфейса.
- Изменения не обходят существующие механизмы прав, RLS, блокировок и дат запрета.
6. Правила работы после замечаний
- Любой fix должен быть явно отмечен в обсуждении MR.
- После fix выполняется повторная самопроверка затронутого контура.
- Если правка затрагивает тестовые сценарии, обязательна синхронизация с QA.
- При накоплении существенных правок допускается повторный полный раунд ревью.
7. Правила передачи в QA
Перед передачей в QA должны выполняться условия:
- Ревью завершено, критичных замечаний нет.
- Обязательные технические проверки завершены успешно.
- В MR описаны:
- состав изменений;
- риски;
- ожидаемый результат;
- требования к повторной проверке.
8. Критерии завершения review-этапа
- MR согласован проверяющим.
- Все обязательные замечания закрыты.
- Нет неразрешенных конфликтов между кодом, тестами и документацией.
- Изменения готовы к прохождению выпускного pipeline.