Ответ
Как тимлид, я рассматриваю код-ревью не только как поиск багов, но и как ключевой процесс для поддержания качества кода, обучения команды и распространения знаний.
Основные фокус-области:
-
Корректность и архитектура:
- Логика соответствует задаче и edge cases.
- Соответствие архитектурным принципам проекта (слои, границы контекстов).
- Отсутствие скрытых побочных эффектов.
-
Читаемость и поддерживаемость:
- Понятные имена переменных, методов, классов.
- Простота против излишней умности (KISS).
- Соблюдение Code Style команды.
- Качество комментариев (объясняют "почему", а не "что").
-
Безопасность и производительность:
- Проверка на уязвимости (SQL-инъекции, XSS).
- Неоптимальные запросы к БД (N+1), проблемы с памятью.
-
Тестируемость:
- Код покрыт юнит-тестами.
- Отсутствие жестких зависимостей, которые мешают тестированию.
Процесс и принципы:
- "Ревьюируй быстро": Стараюсь дать фидбек в течение нескольких часов.
- Конструктивный тон: Задаю вопросы ("Как ты думаешь, что произойдет, если...?"), а не выношу приговоры.
- Автоматизация: Настаиваю на использовании статических анализаторов (SonarQube), линтеров и форматтеров, чтобы не тратить время ревью на пробелы.
- Обучение: Использую ревью, чтобы указать на лучшие практики или альтернативные подходы, делюсь ссылками на документацию.
- Баланс: Не требую идеального кода с первой попытки, но строго спрашиваю за критические недостатки.
Цель — не только улучшить конкретный PR, но и постепенно поднять общий уровень кода и экспертизы в команде.