Три правила ревью
Я люблю ревью кода и тупые правила, вроде «переходя дорогу, смотри в обе стороны». В тупых правилах нет исключений и мудреных условий, поэтому работают они безотказно.
Если вы уже используете ревью кода, но при виде нового пуллреквеста потеете, или не знаете, с чего и как начать ревью — эти правила для вас.
Чтобы ускорить ревью и облегчить жизнь товарищам, сначала просматривайте пуллреквест самостоятельно. Вы обнаружите забытые в коде комментарии, опечатки и прочие тупые проблемы, за которые потом стыдно перед коллегами.
Поэтому правило: открыл пуллреквест → попил чайку → отревьюил. Только чаепитие не пропускайте: это отличный способ отвлечься и взглянуть на код со стороны.
Если изображать Синтаксический Анализатор Пуллреквестов 3000 и при ревью придираться к скобочкам, кавычкам и переносам, легко пропустить важное. Чтобы избавить себя от тупой работы по проверке синтаксиса и освободить время, настройте линтеры.
Отсюда и правило покруче: если что-то можно проверить автоматически, это должен делать робот, а не человек.
Чтобы ничего не забыть при ревью, используйте закрытые списки. Вот список вопросов, по которым я прохожусь при ревью пуллреквеста в проекте на Рельсах:
- понятно как и какую проблему решает пуллреквест?
- гифка в пуллреквесте смешная?
- в коде нет потенциальных багов?
- от кода не пахнет (DRY, SRP, комментарии)?
- имена и названия понятны?
- код легко читается?
- тесты на месте?
- тестов достаточно, нет лишних?
- по изменениям в тестах понятно, что изменилось в коде?
- миграции и изменения в схеме совпадают?
- у добавленных в БД полей есть нужные индексы и ограничения?
- не торчит где-нибудь XSS или SQL инъекция?
- не налажали с проверками доступа?
- роуты в порядке?
- нет жирных моделей, контроллеров и вьюх?
- колбэки меняют только собственное состояние?
- нет медленных участков (N+1 запросов, O(n^2) алгоритмов)?
Если ваш список правил и проверок при ревью круче, поделитесь опытом, напишите: vasily@polovnyov.ru.
Еще по теме:
- The Code Review Mindset;
- Code Review Best Practices;
- Thoughtbot Code Review Guide;
- What a CSS Code Review Might Look Like.
P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.