Как решать разногласия при код ревью
Что проверяют
Как вы ведёте себя, когда с вами не согласны: упираетесь, сдаётесь ради мира или умеете довести спор до решения. Следом часто просят случай, где вы оказались неправы, или спрашивают, что делаете, если ревьюер держит PR неделю.
Как отвечать
Каркас строится вокруг нескольких принципов, а подтверждать его нужно своим случаем:
- отделять вкус от правил: стиль не обсуждается в комментариях, его решают инструменты.
ruffилиblackдля форматирования,ruffиmypyвpre-commitи в CI. Если спор про кавычки или порядок импортов, значит, в проекте не хватает настройки линтера, а не аргументов; - помечать вес замечания: блокирующее или «nit», необязательное. Автору сразу видно, без чего PR не вольют;
- спорить фактами: тест, который ломается, замер через
timeitили профилировщик, ссылка на PEP 8, документацию библиотеки или стандарт команды. «Мне так привычнее» аргументом не считается; - менять канал: если в треде три круга комментариев, короткий созвон решит быстрее переписки;
- иметь выход из тупика: решает техлид или договорённость команды, крупное архитектурное решение оформляется в ADR. После решения его выполняют, даже если вы были против.
Пример возьмите свой: о чём был спор (например, синхронный клиент в асинхронном сервисе или слишком общий except Exception), какие аргументы были у сторон, чем кончилось и что изменилось в процессе после. Цифры, если есть, тоже свои. Хорошо показать обе роли: как вы оспаривали чужой код и как принимали критику своего.
Если опыта командного ревью мало, так и скажите. Опишите ревью в учебном проекте или в open source, либо честно расскажите, как поступили бы, опираясь на эти принципы.
Где спотыкаются
Рассказывают историю, где кандидат прав от начала до конца и в итоге «объяснил коллеге». Интервьюер слышит, что с вами тяжело работать.
Уходят в другую крайность: «я просто соглашаюсь, чтобы не спорить». Для команды это значит, что проблемы в коде доезжают до прода.
Отвечают общими словами про уважение и конструктивность без единой детали. Без конкретного спора, аргументов и итога ответ звучит заученным.