Wydaje mi się, że ręczne przeglądy kodu to ... no cóż ... lata 80-te. Może 90-tych.
W dzisiejszej erze ciągłej integracji i systemów przeglądania kodu online, naprawdę nie chcesz wstrzymywać żadnych zatwierdzeń kodu tylko dlatego, że boisz się, że „może to przerwać kontrolę źródła”.
Dajcie spokój ludzie. Do tego służy zestaw zmian (lub listy zmian). Sprawiasz, że programiści karmią głodne paszcze twojego systemu kontroli źródła. Następnie serwer ciągłej integracji uruchamia się z litanią ukierunkowanych kompilacji (mam nadzieję, że to tylko codzienna kompilacja, ale niektórzy z nas dają się ponieść emocjom). Jeśli coś się zepsuje, odkładasz trofeum małpy kodowej (zwykle plastikową zabawkę, którą ktoś znalazł z pudełka z płatkami Lucky Charms) na biurku sprawcy i wycofujesz listę zmian. Cóż, niektóre systemy ciągłej integracji automatycznie wysyłają powiadomienia e-mail / IM / pulpitu do wszystkich w zespole / dziale / organizacji, że kompilacja jest zepsuta, wraz ze sprytnym hiperłączem, aby pokazać wszystkim, którzy dokładnie złamali kompilację, w którym pliku lub teście. To teraz nieszczęsny programista ”
W trakcie tego procesu uruchamia się system sprawdzania kodu (ponownie uruchamiany podczas odprawy). Lista wykwalifikowanych członków zespołu jest powiadamiana o tym, że lista zmian jest poddana kontroli źródła, przegląd jest uruchamiany w systemie recenzji i wszyscy zaczynają dodawać adnotacje do zmian na liście zmian. Mam nadzieję, że wszyscy powiedzą „LGTM”. Jeśli programista jest inteligentny, pamięta, aby się modlić / przekupić / ukryć. W przypadku poważnych problemów recenzenci mogą utworzyć defekt (który można podłączyć do systemu śledzenia błędów), a nawet zażądać wycofania listy zmian. Tak, wycofane zmiany zaszkodziły nie tylko ego, ale i umysłowi, to prawda. Jest to dobra przyprawa dla młodszych programistów, aby ponownie zintegrować listy odrzuconych zmian.
Jeśli w twoim środowisku deweloperskim brakuje CI lub systemu przeglądu kodu, powinieneś poważnie to sprawdzić. Kilka linków może ci pomóc:
Atlassian Crucible
JetBrains TeamCity
reitveld
Cruise Control
Jeśli zamierzasz uzyskać serwer CI, powinieneś poważnie pomyśleć o ramach testów jednostkowych. Jeśli jesteś programistą C #, poszukaj czegoś takiego jak NUnit, aby rozpocząć.