Три правила ревью

Я люблю ревью кода и тупые правила, вроде «переходя дорогу, смотри в обе стороны». В тупых правилах нет исключений и мудреных условий, поэтому работают они безотказно.

Если вы уже используете ревью кода, но при виде нового пуллреквеста потеете, или не знаете, с чего и как начать ревью — эти правила для вас.


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

Поэтому правило: открыл пуллреквест → попил чайку → отревьюил. Только чаепитие не пропускайте: это отличный способ отвлечься и взглянуть на код со стороны.

Первый ревьюер — ты

Если изображать Синтаксический Анализатор Пуллреквестов 3000 и при ревью придираться к скобочкам, кавычкам и переносам, легко пропустить важное. Чтобы избавить себя от тупой работы по проверке синтаксиса и освободить время, настройте линтеры.

Отсюда и правило покруче: если что-то можно проверить автоматически, это должен делать робот, а не человек.

Синтаксис — роботам

Чтобы ничего не забыть при ревью, используйте закрытые списки. Вот список вопросов, по которым я прохожусь при ревью пуллреквеста в проекте на Рельсах:

  • понятно как и какую проблему решает пуллреквест?
  • гифка в пуллреквесте смешная?
  • в коде нет потенциальных багов?
  • от кода не пахнет (DRY, SRP, комментарии)?
  • имена и названия понятны?
  • код легко читается?
  • тесты на месте?
  • тестов достаточно, нет лишних?
  • по изменениям в тестах понятно, что изменилось в коде?
  • миграции и изменения в схеме совпадают?
  • у добавленных в БД полей есть нужные индексы и ограничения?
  • не торчит где-нибудь XSS или SQL инъекция?
  • не налажали с проверками доступа?
  • роуты в порядке?
  • нет жирных моделей, контроллеров и вьюх?
  • колбэки меняют только собственное состояние?
  • нет медленных участков (N+1 запросов, O(n^2) алгоритмов)?
Проверяй по списку

Если ваш список правил и проверок при ревью круче, поделитесь опытом, напишите: vasily@polovnyov.ru.


Еще по теме:

P. S. Ещё больше постов о программировании, тестах и культуре разработки у меня в Телеграме.