Код-ревью (Code Review)

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

Код-ревью (code review) — проверка изменений в коде другими разработчиками до того, как изменения попадут в основную версию программы. Автор предлагает изменения — в Git-платформах это запрос на слияние (merge request или pull request), — коллеги читают код, задают вопросы, предлагают улучшения, и только после одобрения изменения принимаются.

Зачем это нужно

  • Поиск ошибок. Свежий взгляд замечает то, что автор пропустил: неучтенный случай, ошибку в условии, проблему с производительностью.
  • Безопасность. Ревьюер проверяет типичные уязвимости — SQL-инъекции, XSS, утечку секретов, неправильную проверку прав.
  • Обмен знаниями. Код видят несколько человек, и знание о каждой части системы не остается в одной голове.
  • Единый стиль и архитектура. Решения в проекте остаются согласованными.
  • Обучение. Младшие разработчики учатся на замечаниях, старшие — на свежих идеях.

Что проверяют

  • Решает ли изменение задачу и не ломает ли существующее поведение.
  • Понятен ли код: названия, структура, комментарии там, где логика неочевидна.
  • Есть ли тесты на новое поведение и пограничные случаи.
  • Как изменение поведет себя под нагрузкой и при ошибках: тайм-ауты, пустые значения, повторные запросы.
  • Нет ли лишних зависимостей и не накапливается ли технический долг.

Как сделать ревью полезным

  • Небольшие изменения. Изменение на 200–400 строк проверяют внимательно, а на три тысячи строк — пролистывают. Большие задачи делят на последовательные части.
  • Автоматизировать рутину. Стиль, форматирование, простые ошибки и тесты проверяет конвейер CI/CD, чтобы люди тратили внимание на логику и архитектуру.
  • Быстрый ответ. Запрос, который ждет ревью три дня, тормозит всю команду. Хорошее правило — первый ответ в течение рабочего дня.
  • Описание изменения. Автор объясняет, что и зачем меняет и как проверить, — ревьюеру не нужно угадывать.
  • Уважительный тон. Комментарии касаются кода, а не человека; вопросы вместо приказов: «Что будет, если список пустой?»

Ревью не только для кода

Тот же подход применяют к изменениям инфраструктуры (планы Terraform), схем баз данных, конфигураций и даже текстов промптов для языковых моделей. Везде, где ошибка дорого стоит, вторая пара глаз до применения изменений обходится дешевле разбора последствий.