Как вы проводите код-ревью в роли тимлида? На что обращаете основное внимание?

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

Ответ

Как тимлид, я рассматриваю код-ревью не только как поиск багов, но и как ключевой процесс для поддержания качества кода, обучения команды и распространения знаний.

Основные фокус-области:

  1. Корректность и архитектура:

    • Логика соответствует задаче и edge cases.
    • Соответствие архитектурным принципам проекта (слои, границы контекстов).
    • Отсутствие скрытых побочных эффектов.
  2. Читаемость и поддерживаемость:

    • Понятные имена переменных, методов, классов.
    • Простота против излишней умности (KISS).
    • Соблюдение Code Style команды.
    • Качество комментариев (объясняют "почему", а не "что").
  3. Безопасность и производительность:

    • Проверка на уязвимости (SQL-инъекции, XSS).
    • Неоптимальные запросы к БД (N+1), проблемы с памятью.
  4. Тестируемость:

    • Код покрыт юнит-тестами.
    • Отсутствие жестких зависимостей, которые мешают тестированию.

Процесс и принципы:

  • "Ревьюируй быстро": Стараюсь дать фидбек в течение нескольких часов.
  • Конструктивный тон: Задаю вопросы ("Как ты думаешь, что произойдет, если...?"), а не выношу приговоры.
  • Автоматизация: Настаиваю на использовании статических анализаторов (SonarQube), линтеров и форматтеров, чтобы не тратить время ревью на пробелы.
  • Обучение: Использую ревью, чтобы указать на лучшие практики или альтернативные подходы, делюсь ссылками на документацию.
  • Баланс: Не требую идеального кода с первой попытки, но строго спрашиваю за критические недостатки.

Цель — не только улучшить конкретный PR, но и постепенно поднять общий уровень кода и экспертизы в команде.