Próbuję sprzedać mojej organizacji wartość przeglądów kodu. Pracowałem w kilku miejscach, w których byli zatrudnieni. Widziałem, jak są przyzwyczajeni do wyborów stylizacji i decyzji funkcjonalnych, i widziałem, że były używane jedynie jako kontrola, aby upewnić się, że nic niebezpiecznego nie zostanie wdrożone. Mam przeczucie, że najskuteczniejszym celem jest gdzieś pomiędzy dwiema opcjami.
Jaki jest zatem cel przeglądu kodu?
code-reviews
theory
SoylentGray
źródło
źródło
Odpowiedzi:
Istnieje wiele powodów, dla których warto przeprowadzić przegląd kodu:
Istnieje kilka przypadków biznesowych dotyczących przeprowadzania recenzji:
Jeśli szukasz kompleksowej dyskusji na temat korzyści i strategii wdrażania w recenzjach, polecam sprawdzenie recenzji w oprogramowaniu: praktyczny przewodnik Karla Wiegera .
źródło
this
kontekstem, nie używając go.hasOwnProperty
w miejscach, w których powinien być itp., Itd. - A więc, głównie ze względu na standardy. W języku zarządzanym, takim jak C #, masz oczywiście mniej powodów niż języki dynamiczne.Recenzje kodu to narzędzie do transferu wiedzy .
Gdy programiści dokonują wzajemnego przeglądu kodu, zapoznają się ze wszystkimi obszarami systemu. Zmniejsza to współczynnik magistrali projektu i sprawia, że programiści są bardziej wydajni, gdy muszą wykonywać konserwację części systemu, której nie napisali.
Gdy młodszy programista sprawdza kod seniora, młodszy programista może wybierać sztuczki, które w innym przypadku byłyby możliwe tylko dzięki doświadczeniu. Może to również działać jako korekta przed zbyt skomplikowanym kodem.
Dokładny przegląd kodu będzie wymagał częstych kontroli różnych dokumentów. To świetny sposób na naukę języka lub interfejsu API.
Kiedy starszy programista sprawdza kod młodszego, jest to okazja do rozwiązania problemów, zanim przełożą się one na zadłużenie techniczne. Przegląd kodu może być dobrym rozwiązaniem dla mentorów młodszych programistów.
Recenzje kodu nie dotyczą:
… Znajdowanie błędów. Po to są testy. Nadal często zdarza się, że przegląd kodu znajduje jakiś problem.
… Dręczące kwestie związane ze stylem - zadowalaj się jednym stylem i użyj automatycznych formaterów, aby go wymusić. Ale jest wiele rzeczy, których automatyczne narzędzie nie może sprawdzić. Recenzje kodu są dobrym miejscem do upewnienia się, że kod jest wystarczająco udokumentowany lub samodokumentujący.
źródło
Najcenniejszą rzeczą, którą osobiście otrzymuję z przeglądu kodu, jest pewność, że kod jest zrozumiały dla innej osoby. Czy zmienne są wyraźnie nazwane? Czy cel każdego fragmentu kodu jest dość oczywisty? Czy coś niejednoznacznego zostało wyjaśnione w komentarzu? Czy przypadki na krawędziach i prawidłowe wartości parametrów są opisane w komentarzach i sprawdzone w kodzie?
źródło
Chciałbym dodać dwa obszary nieobjęte innymi świetnymi odpowiedziami:
Jednym z ważnych powodów recenzji kodu jest efekt Hawthorne'a, który w naszym przypadku przekłada się na: Jeśli wiesz, że ktoś będzie później patrzył na twój kod, to znacznie bardziej prawdopodobne jest, że lepiej go napiszesz.
Innym ważnym powodem są bezpieczniejsze praktyki programistyczne. Wystarczy spojrzeć na błąd goto Apple'a (przypadkowa zduplikowana linia kodu) lub błąd Heartbleed (podstawowy błąd w sprawdzaniu poprawności danych wejściowych), aby zrozumieć znaczenie prawidłowych recenzji kodu w bezpiecznym cyklu rozwojowym.
źródło