Google stosuje najlepsze praktyki sprawdzania kodu w każdym miejscu, jakie kiedykolwiek widziałem. Wszyscy, których tam spotkałem, są w pełni zgodni co do tego, jak robić recenzje kodu. Mantra to „przegląd wcześnie i często”.
Załóżmy, że używasz procesu, który wygląda tak, jak sugerował Graham Lee. (Którego procesu wcześniej użyłem sam.) Problem polega na tym, że recenzenci proszeni są o przyjrzenie się dużym fragmentom kodu. Jest to o wiele większy wysiłek i trudniej jest skłonić recenzentów do zrobienia tego. A kiedy to robią, trudniej jest ich zmusić do wykonania dokładnej pracy. Ponadto, gdy zauważą problemy z projektowaniem, trudniej jest zachęcić programistów do cofnięcia się i ponownego wykonania całego działającego kodu, aby było lepiej. Nadal łapiesz rzeczy, i to jest nadal cenne, ale nie zauważysz, że tracisz ponad 90% korzyści.
Dla kontrastu Google sprawdza kod przy każdym zatwierdzeniu, zanim będzie mógł przejść do kontroli źródła. Naiwnie wiele osób uważa, że byłby to ciężki proces. Ale to nie działa w praktyce. Okazuje się, że znacznie łatwiej jest przeglądać małe fragmenty kodu w izolacji. Po znalezieniu problemów zmiana projektu jest o wiele mniejsza, ponieważ nie napisałeś jeszcze żadnego kodu wokół tego projektu. Powoduje to, że o wiele łatwiej jest dokonać dokładnego przeglądu kodu i znacznie łatwiej naprawić problemy zmienione.
Jeśli chcesz zrobić przegląd kodu, tak jak robi to Google (co naprawdę, naprawdę polecam), istnieje oprogramowanie, które Ci w tym pomoże. Google wydało swoje narzędzie zintegrowane z Subversion jako Rietveld . Go (język) został opracowany z wersją Rietveld, która jest zmodyfikowana do użytku z Mercurial. Istnieje przepisanie dla osób używających git o nazwie Gerrit . Widziałem także dwa komercyjne narzędzia zalecane do tego, Crucible i Review Board .
Użyłem tylko wewnętrznej wersji Rietveld firmy Google i byłem z niej bardzo zadowolony.