PRO

Как провести code review? Что проверяете в первую очередь?

Code review — совместная проверка изменений до merge, цель которой повысить качество, безопасность и поддерживаемость кода, а также поделиться знаниями. Сначала стоит проверить соответствие задаче, корректность и риски, затем тесты, безопасность, производительность, читаемость и соответствие договорённостям команды.
Подробный ответ

Цель code review

Code review — не поиск мелких стилистических ошибок и не оценка автора. Его цель — убедиться, что изменение решает задачу, не ломает систему, безопасно поддерживается и понятно другим разработчикам.

Что проверять сначала

  1. Понятна ли задача и соответствует ли ей изменение.

  2. Корректна ли бизнес-логика, обработаны ли основные и граничные случаи.

  3. Нет ли риска потери данных, нарушения безопасности или breaking change API.

  4. Есть ли подходящие тесты и проходят ли обязательные CI checks.

  5. Не создаёт ли изменение N+1, утечки ресурсов, лишние запросы или проблемы масштабирования.

Чек-лист review

  • корректность алгоритма и обработка ошибок;

  • валидация входных данных и права доступа;

  • отсутствие секретов, SQL injection, XSS и небезопасных логов;

  • тесты на основной сценарий, ошибки и edge cases;

  • миграции БД, обратная совместимость и план rollback;

  • производительность, кэширование, сетевые вызовы и ресурсы;

  • читаемость имён, размер функций, дублирование и архитектурные границы;

  • обновление документации, метрик и логирования при необходимости.

Как формулировать комментарии

Комментарии должны быть конкретными и уважительными. Полезно разделять блокирующие замечания, например ошибка безопасности, и необязательные предложения по улучшению. Вместо «плохо написано» лучше объяснить риск и предложить вариант: «Этот запрос выполняется внутри цикла и может создать N+1. Можем использовать select_related?»

Размер pull request

Небольшие PR проще и качественнее проверять. Если изменение большое, полезно разделить его на логические этапы: подготовительная миграция, изменение backend, изменение клиента, удаление старого кода.

Как ответить на собеседовании

Сначала проверяю, решает ли PR задачу и корректна ли логика, затем ищу риски безопасности, потери данных и breaking changes. После этого смотрю тесты, производительность, читаемость и соответствие архитектуре. Комментарии формулирую уважительно и конкретно, разделяя блокирующие проблемы и необязательные предложения. Цель review — улучшить код и снизить риск, а не критиковать автора.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге