Каковы цели и лучшие практики проведения Code Review?

«Каковы цели и лучшие практики проведения Code Review?» — вопрос из категории Софт-скиллы, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Code Review (CR) — это процесс проверки исходного кода другими членами команды перед его слиянием в основную ветку.

Основные цели:

  1. Повышение качества кода: Выявление багов, уязвимостей и проблем с производительностью.
  2. Передача знаний и стандартизация: Обучение новичков, распространение лучших практик и соблюдение code style.
  3. Снижение долгосрочных затрат: Раннее обнаружение проблем дешевле их исправления в production.
  4. Улучшение архитектуры: Коллективное обсуждение дизайна решений.

Лучшие практики для ревьювера:

  • Сосредоточьтесь на коде, а не на авторе. Критикуйте код, а не человека.
  • Задавайте вопросы, а не выдвигайте обвинения. "Можешь пояснить, как этот метод будет работать в случае X?" вместо "Это неправильно".
  • Хвалите хорошие решения. Это мотивирует и закрепляет правильные паттерны.
  • Соблюдайте SLA на ревью. Не задерживайте процесс.
  • Проверяйте по чек-листу: корректность, читаемость, тесты, безопасность, производительность.

Лучшие практики для автора:

  • Делайте небольшие и атомарные Pull Request (PR). Их проще и быстрее ревьюить.
  • Пишите понятные описания к PR. Что сделано, зачем, как тестировать.
  • Заранее проводите self-review. Уберите очевидные недочеты.
  • Отвечайте на каждый комментарий. Либо исправьте код, либо конструктивно обсудите.

Что проверять:

  • Функциональная корректность.
  • Читаемость и соблюдение code style.
  • Наличие и качество тестов.
  • Возможные edge-cases и ошибки.
  • Производительность и безопасность.

Эффективный Code Review — это инструмент обучения и один из главных гарантов качества кодовой базы.