Как работает код ревью в команде
Что проверяют
Работали ли вы в команде с нормальным процессом и понимаете ли, зачем он нужен помимо поиска багов. Следом спрашивают, как вы реагируете на жёсткие комментарии к своему коду и как сами ревьюите чужой. Этот же вопрос полезно задать работодателю: по ответу видно, как в команде устроена работа.
Как отвечать
Опишите процесс, который прошли сами, с реальными деталями. Типичный каркас для Python-проекта:
- до ревью: ветка, merge request или pull request с описанием, что и зачем изменено и как проверить. Автор сначала сам просматривает свой дифф;
- автоматика: CI гоняет
ruffдля стиля и линтинга,mypyдля типов,pytestс покрытием. Хукиpre-commitловят то же локально. Спор о кавычках и отступах на ревью означает, что автоматики не хватает; - правила: защищённая ветка, один или два аппрува,
CODEOWNERSназначает ответственных за модули, мерж только при зелёном CI; - что смотрит ревьюер: корректность и граничные случаи, тесты на новое поведение, миграции Django или Alembic на больших таблицах, N+1 запросы в ORM, обработку ошибок, секреты в коде, понятность имён и границы модулей;
- комментарии: помечают, что блокирует мерж, а что пожелание, например префиксом
nit:. Вопрос «почему так?» работает лучше, чем «переделай»; - ритм: небольшие MR, которые реально прочитать за один подход, и договорённость о сроке, например ответ в течение рабочего дня.
Добавьте пример из опыта: ревью поймало гонку или опасную миграцию, либо вы сами поменяли подход после комментария. Своих цифр не придумывайте. Если в прошлой команде ревью не было, так и скажите и объясните, как организовали бы его.
Когда спрашиваете сами, слушайте конкретику: сколько аппрувов, сколько обычно ждут ревью, кто ревьюит джунов. «Ну, смотрим друг у друга» означает, что процесса нет.
Где спотыкаются
Сводят ревью к поиску ошибок. Не меньше в нём обмена знаниями: после ревью модуль понимают минимум двое.
Хвастаются придирками к стилю. Это сигнал, что вы тратите время команды на то, что должен делать линтер.
Защищаются в ответ на критику или, наоборот, ставят аппрув не читая. Интервьюер ищет человека, который аргументирует и готов менять мнение.