В моей работе у нас есть очень простое правило: изменения должны проверяться, по крайней мере, одним другим разработчиком перед слиянием или фиксацией в стволе . В нашем случае это означает, что другой человек физически сидит с вами за вашим компьютером и просматривает список изменений. Это не идеальная система, но тем не менее она заметно улучшила качество кода.
Если вы знаете, что ваш код будет пересмотрен, это заставит вас сначала просмотреть его. Многие проблемы становятся очевидными тогда. В нашей системе вы должны объяснить рецензенту, что вы сделали, что снова заставит вас заметить проблемы, которые вы, возможно, пропустили раньше. Кроме того, если что-то в вашем коде не сразу понятно рецензенту, это является хорошим признаком того, что требуется лучшее имя, комментарий или рефакторинг. И, конечно, рецензент может также найти проблемы. Кроме того, кроме просмотра изменений, рецензент может также заметить проблемы в соседнем коде.
У этой системы есть два основных недостатка. Когда изменение тривиально, нет смысла его пересматривать. Тем не менее, мы должны строго придерживаться правил, чтобы избежать скользкого уклона, чтобы объявить изменения «тривиальными», когда их нет. С другой стороны, это не очень хороший способ просмотра значительных изменений в системе или добавления крупных новых компонентов.
Мы уже пробовали проводить более формальные обзоры, когда один разработчик отправлял по электронной почте код для проверки остальной части команды, а затем вся команда собиралась и обсуждала его. Это заняло у каждого много времени, и в результате эти обзоры были редкими, и только небольшой процент базы кода был рассмотрен. «Еще один человек проверяет изменения перед фиксацией» для нас гораздо лучше.