Google имеет лучшие практики проверки кода из всех, где я когда-либо видел. Все, кого я там встретил, полностью согласны с тем, как делать проверки кода. Мантра - это «обзор рано и часто».
Предположим, вы используете процесс, который выглядит так, как предложил Грэм Ли. (Это процесс, который я раньше использовал сам.) Проблема в том, что рецензентов просят взглянуть на большие куски кода. Это намного больше усилий, и заставить рецензентов сделать это труднее. И когда они это делают, им сложнее заставить их выполнить всю работу. Более того, когда они замечают проблемы с дизайном, труднее заставить разработчиков вернуться и переделать весь свой рабочий код, чтобы сделать его лучше. Вы все еще ловите вещи, и это все еще ценно, но вы не заметите, что упускаете более 90% выгоды.
В отличие от Google, проверка кода на каждый коммит, прежде чем он может перейти в систему контроля версий. Наивно многие думают, что это будет тяжелый процесс. Но на практике это не сработает. Оказывается, гораздо проще просматривать небольшие фрагменты кода изолированно. Когда обнаружены проблемы, изменить дизайн гораздо меньше, потому что вы еще не написали кучу кода вокруг этого дизайна. В результате гораздо проще выполнить тщательный анализ кода, и гораздо проще исправить проблемы, измененные.
Если вы хотите сделать обзор кода, как это делает Google (что я действительно очень рекомендую), есть программное обеспечение, которое поможет вам в этом. Google выпустил их инструмент, интегрированный с Subversion под именем Rietveld . Go (язык) разработан с версией Rietveld, которая модифицирована для использования с Mercurial. Существует переписать для людей, которые используют Git по имени Gerrit . Я также видел два коммерческих инструмента, рекомендованных для этого, Crucible и Review Board .
Единственная, которую я использовал, это внутренняя версия Google от Ритвельда, и я был очень доволен ею.