Инженерная практика
Code review: тест с выбором ответа
Шесть вопросов поперёк всего юнита. Каждый отражает решение, которое ты принимаешь как reviewer или тимлид под реальным давлением — не определение для заучивания, а компромисс, который надо взвесить, когда PR блокирует кого-то и тикают часы.
Убедись, что связываешь, для чего нужно ревью, почему PR size задаёт и задержку, и обнаружение, как делать фидбэк действенным и как очередь и анти-паттерны меняют ревью на масштабе — тот синтез, к которому вели пять уроков.
Команда хочет, чтобы ревьюеры были тщательнее, и просит всех дополнительно отмечать форматирование, порядок импортов и регистр имён в каждом PR. Почему это неверный ход?
Медианное время подхвата PR ползёт к суткам, а post-merge дефекты растут по мере роста диффов. Какой единственный фикс с наибольшим рычагом?
По данным Google, почему маленькие изменения подхватываются менее чем за час, а очень большие ждут около пяти часов?
Ревьюер пишет 'consider extracting this' на функции, и автор не может понять, блокирует ли это merge. Что комментарий не делает явным и как это починить?
Исследование SmartBear/Cisco нашло один фактор на стороне автора с драматическим эффектом на плотность дефектов. Какой это фактор и почему он работает?
Организация выросла до 200 инженеров; один staff-инженер — единственный CODEOWNER платежей с ~40 ревью/день, и качество сползает в rubber stamp. Какой фикс с наибольшим рычагом?
Сквозная линия юнита — одна операционная модель: ревью существует для неразрешимого — дизайн, замысел, корректность, обмен знаниями — поэтому всякую разрешимую проверку толкай в блокирующий гейт до ревью. PR size — главная переменная, потому что задаёт и задержку (подхват — это очередь по размеру), и обнаружение (внимание — фиксированный бюджет) разом и в одном направлении; маленькие и stacked PR двигают обе. Фидбэк работает, когда называет важность и фикс, а собственная аннотация автора ловит дефекты, которых не видит ни один ревьюер. На масштабе ты маршрутизируешь владение на команду, ограничиваешь подхват (не завершение), балансируешь нагрузку и иногда меняешь форму — pairing или post-commit на протестированной базе высокого доверия. Каждый анти-паттерн — та же инверсия: ревью перестаёт быть про дизайн.