Задачи Code Review:
- Улучшение качества кода и поиск лучших решений
- Повышение квалификации разработчиков
- Передача знаний и изучение работы коллег для группового владения кодом
- Поиск лучших решений
- Граничные случаи
Почему делаем Code Review:
- Замыленный глаз
- Что, если разработчика переедет автобус?
- Команда эффективнее разработчиков-одиночек
Что ищем на Code Review:
- Соответствие структуре и архитектуре проекта
- Соответствие техническому заданию
- Читаем ли код коллегами, понятно ли всем именование
- Как можно повысить информативность кода
- Возможно ли улучшение метрик сложности алгоритмов
- Возможно, стоит изменить структуры данных
- Оптимизация алгоритмов
- Другие алгоритмы
- Состояние гонки
- Утечки памяти
- Безопасность
- Антипаттерны
- Обработка ошибок
- Лишние зависимости или из замена
- Улучшение структуры и интеграции программных компонентов
- Уменьшение зацепления
- Увеличение связности кода
- Вредные привычки
Чего не ищем (должно быть автоматизировано в CI):
- Стандарты кодирования (кроме первого случая)
- Вопросы стиля
- Правила именования идентификаторов
- Повторный код
- Покрытие тестами
- Метрики
Процесс создания и принятия Pull Request:
- Когда подаем?
- Зачем? У каждого PR должна быть цель
- Кого добавляем?
- Как быстро обрабатываем?
- Как обсуждаем?
- Консенсус
- LGTM
Проблемы и о чем нужно помнить:
- Code Review занимает время
- Раздражает
- Сведение счетов
- Доказать кто круче
- Понятность запроса от инициатора
- Просто странный код без всяких комментариев и цели ревью
- Почему меня просят про Code Review?
- Дополнительные вводные и комментарии
- Понятность отзыва от ревьюера
- Не пишем: это что-то странное тут...
- Не сводим к формальностям
- Не пишем повестей на много страниц
- Что бывает, когда много изменений в одном PR
- Что бывает, когда мало изменений в одном PR
- Почему лучше сначала планировать разработку
- Почему лучше делать тесты отдельным коммитом
- Начните с высокого уровня
- Пред коммитом сами просмотрите
- Избегайте новых коммитов во время PR
- По возможности избегайте альтернативных но не связанных PR
- Отвечайте на вопросы