Blog Dla Młodszych Programistów C#/.NET

Praca programisty wbrew pozorom nie polega na samotnym kodowaniu w zaciszu własnych czterech ścian. W każdej większej organizacji praca jednej osoby jest bezpośrednio uzależniona od tego, co robią inni. Ta swoista komplementarność pracowników jest szczególnie zauważalna w branży IT. Zwyczajowo podczas realizacji projektu komercyjnego członkowie zespołu developerskiego dzielą między sobą poszczególne zadania, tak aby przy wspólnym nakładzie pracy wykonać wszystkie niezbędne jego elementy.

W przypadku projektów programistycznych realizowanych w większych zespołach, na bezpośredni efekt pracy jednego programisty ma wpływ to, jak swoją część zrealizował inny członek zespołu wykonawczego. Choć w praktyce każdy odpowiada za swój zakres obowiązków, to jednak stosowanie pewnych działań wspomagających pracę zarówno poszczególnych osób, jak i całego zespołu developerskiego jest szczególnie ważne i potrzebne. Takim działaniem jest właśnie code review.

Zastosowanie tego procederu przyczynia się do zwiększenia efektywności i jakości wytwarzanego oprogramowania, ponieważ minimalizuje ryzyko wystąpienia pewnych błędów funkcjonalnych. Na czym właściwie polega code review? Co zyskuje się, wprowadzając go do organizacji? Jak należy go przeprowadzić, aby uzyskać jak najlepsze efekty? Na te i inne pytania postaram się odpowiedzieć w dzisiejszym wpisie.

10 Najważniejszych Nawyków, By Efektywnie Przeprowadzić Code Review (Przegląd Kodu)

Czym jest code review?


Jak już wspomniałem code review jest często stosowaną praktyką w zespołach developerskich. Przeprowadzenie tego procederu ma na celu sprawdzenie poprawności kodu źródłowego oraz ocenę trafności doboru zastosowanych rozwiązań technologicznych, tak aby w efekcie końcowym zapewnić najwyższą jakość i niezawodność wytwarzanego oprogramowania. W praktyce code review polega to na tym, że spotyka się dwóch, lub więcej programistów po to, aby wspólnie przeanalizować stworzony przez jednego z nich kod, program, czy aplikację. Analizując kod źródłowy linijka po linijce, wychwytują błędy funkcjonalne oraz wszelkiego rodzaju luki z zabezpieczeniach, tak aby zapewnić jego niezawodność.

Jak to mówią: "co dwie głowy, to nie jedna". Te powiedzenie ma szczególne odzwierciedlenie w branży IT. Ile osób, tyle pomysłów, spostrzeżeń i opinii na dane zagadnienie. Jak wiadomo nikt nie jest nieomylny. Również programiści muszą wprowadzić wiele zmian i modyfikacji w kodzie, poprawić występujące pomyłki i nieprawidłowości nim wytworzą dobre jakościowo oprogramowanie. Praktykując stosowanie w organizacji code review można wyłapać wszelkie błędy na etapie tworzenia kodu źródłowego, zmniejszając ryzyko wystąpienia wszelkich nieprawidłowości w funkcjonowaniu oprogramowaniu już po jego wydaniu. Code review pozwala także dostrzec możliwe ścieżki rozwiązania danej problematyki w inny, bardziej optymalny sposób, tworząc przy tym niepowtarzalną okazję doboru najlepszego z możliwych rozwiązań.


Co zyskuje się dzięki praktykowaniu code review?


Stosowanie code review pozwala uzyskać maksymalnie czysty, przejrzysty i czytelny kod źródłowy, w efekcie czego jest on w stanie spełnić założone funkcjonalności. Przeprowadzanie code rewiew jest więc nie tylko ważnym i potrzebnym procederem w kontekście zabezpieczenia prawidłowego działania oprogramowania, lecz także i w kontekście indywidualnego rozwoju programisty. Swego rodzaju feedback od osoby postronnej pozwala zdystansować się do tego co robimy, jednocześnie dając możliwość spojrzenia na swój autorski program, kawałek kodu czy aplikację oczami osoby postronnej. Tak więc stosowanie w codziennej swej pracy code review jest bardzo uczącym i rozwijającym doświadczeniem dla każdego programisty, zarówno tego, który przeprowadza inspekcję kodu, jak i tego, który jest jego autorem. Jest to bowiem okazja do dzielenia się swą wiedzą i doświadczeniem, poprzez poznawanie nowych technik, narzędzi i metod pracy. Opinia innego developera jest okazją spojrzenia na nasz kod z zupełnie innej perspektywy oraz poznania obiektywnej oceny efektów naszej pracy.


Na co należy zwrócić uwagę podczas przeprowadzania procedury code review?


Aby code review miało faktycznie sens, należy do niego podejść w sposób uporządkowany i przemyślany. Nie ma sensu podejmować się spontanicznego przeglądu kodu, bo można pominąć przy tym bardzo ważne kwestie. Code review już z samego założenia ma na celu zbadanie poprawności kodu źródłowego oraz jego działania, tak aby umożliwić jego wdrożenie, dlatego ważne, żeby dać sobie odpowiednio dużo czasu. Skuteczny code review pozwala także zweryfikować istotę działania kodu w kontekście postawionych oczekiwań oraz przyjętych odgórnie regulacji. Osoba przeprowadzająca code review powinna przyjrzeć się wszystkim najważniejszym elementom programu, a więc jego strukturze, proponowanym funkcjonalnościom, specyfice jego działania oraz wszelkim aspektom logistycznym i całej złożoności kodu. W tym wszystkim jednak kluczowe jest, aby nie skupiać się jedynie na składni kodu, ponieważ może to przyczynić się do rozproszenia uwagi i niepotrzebnym skupieniu się na kwestiach, które można poddać automatycznemu sprawdzeniu. Rolą osoby przeprowadzającej code review nie jest bowiem przeprowadzanie automatycznej analizy, lecz wyłapanie taki niuansów, które właśnie nie zostaną wychwycone automatycznie np. w kwestii dopasowaniu kodu do przyjętych standardów i założeń.

Aby jednak mieć pewność, że przeprowadzony code review będzie jak najbardziej efektywny i skuteczny, warto wypracować w sobie kilka cennych nawyków, tj.:


1. Przygotuj się w odpowiedni sposób - stosuj pull request


Aby móc uzyskać dobrej jakości code review, warto wprowadzić zwyczaj przeprowadzania wcześniejszego pull requestu, czyli inaczej mówiąc systemu kontroli wersji umożliwiającego sprawny przegląd zmian dokonywanych w kodzie źródłowym wraz z uwzględnieniem jego poprzednich wersji. Tak przygotowany plik stanowi dobrą bazę do podjęcia dalszych działań. Dbałość o jakość pull requestu przekłada się na efektywność przeprowadzanego code review. Dobrze opracowany pull request opisuje istotę i cel wprowadzonych zmian oraz zasadność stosowania pewnych rozwiązań.


2. Wspomagaj się zewnętrznymi narzędziami


Przeglądu kodu można dokonywać zarówno manualnie, jak i w oparciu o zewnętrzne narzędzia analityczne, bezpośrednio wbudowane do repozytorium kodu, bądź te, które pozwalają przestrzegać ogólnie przyjętych norm, standardów i założeń. Jeśli już na etapie tworzenia kodu źródłowego znane są pewne standardy i przyjęte założenia, łatwiej będzie zmierzyć efektywność przeprowadzonej inspekcji kodu, a co za tym idzie, stwierdzić jaką wartość dodaną zyskało się dzięki przeprowadzonej procedurze code review.


3. Przeprowadzaj code review samemu sobie


Nim przekażemy do przeglądu nasz kod źródłowy, warto w pierwszej kolejności przeprowadzić sobie samemu taki pozorny code review. Warto przejść krok po kroku przez wszystkie linijki kodu, przejrzeć wprowadzone funkcjonalności oraz rozwiązania, próbując wytłumaczyć sobie samemu dlaczego zostały zastosowane. Warto zadać sobie pytanie, czy rzeczywiście jesteśmy w stanie realnie uargumentować konieczność użycia niektórych narzędzi.


4. Wprowadzaj listy kontrolne


Jedną z metod umożliwiających efektywniejsze przeprowadzenie code review jest stosowanie list kontrolnych. Tego rodzaju rozwiązanie umożliwia wykonanie kompleksowego code review bez ryzyka pominięcia ważnych kwestii. Stosowanie tzw. check list jest gwarantem pełnego i efektywnego przeglądu kodu, dzięki czemu można zapobiec pojawieniu się różnego rodzaju błędów. Dzięki tej metodzie możemy łatwo i wygodnie odhaczać sprawdzane elementy kodu. Stosując tego typu metodę przyczyniamy się do przestrzegania przyjętych standardów. Dzięki przeprowadzeniu code review programista może uświadomić sobie co tak naprawdę robi dobrze, a nad czym musi jeszcze popracować, dzięki czemu zwiększa wydajność swej pracy. Listy kontrolne są swego rodzaju "ściągą" przypominającą o wszystkich ważnych aspektach, o których nie można zapominać podczas przeprowadzania code review, dzięki czemu nic nie powinno zostać pominięte, a proces przeglądu będzie oparty na określonych kryteriach.


5. Dbaj o wzajemną komunikację


Przy code review ważna jest również wzajemna komunikacja. Warto, aby podczas inspekcji mówił nie tylko recenzent, lecz także autor programowania. Dobrze, by autor oprogramowania opowiedział osobie przeprowadzającej code review o tym co zrobił, jakie funkcjonalności wprowadził oraz to w jakim kierunku rozwija projekt. Dzięki temu taka osoba będzie w stanie lepiej zrozumieć ideę użytych narzędzi, wprowadzonych funkcjonalności, czy użytej biblioteki. Taka rozmowa pozwala nie tylko na obopólne zrozumienie swojego punktu widzenia, lecz także stwarza szansę, na wspólne przepracowanie pewnych zagadnień, a tym samym efektywniejszy code review. Dobrze wykonany code review powinien także zakończyć się jasnym opisaniem poszczególnych fragmentów kodu wymagającym poprawy. W efekcie końcowym osoba przeprowadzająca inspekcję kodu powinna jasno i wyraźnie zakomunikować autorowi kodu wszelkie uwagi i wskazówki, jakie zrodziły się podczas przeglądu kodu, aby zrozumiał on, w jaki sposób proponowane zmiany mogą wpłynąć na działanie kodu.


6. Przekuwaj proponowane zmiany w działanie


W rezultacie przeprowadzonej inspekcji kodu programista otrzymuje swego rodzaju feedback. Wszelkie zebrane wnioski, uwagi i proponowane zmiany powinny być natychmiast wdrożone, aby nic nie umknęło uwadze i nie zostało odłożone na potem. Wykonanie code review ma swoje zadanie. Aby zauważyć efekty wdrożenia procedury code review, nie można pomijać etapu wprowadzenia korekt w kodzie źródłowym, by nie zmarnować tego, co zyskało się podczas inspekcji.


7. Angażuj w sprawdzenie kodu różne osoby


Dobrą praktyką jest również zadbanie o to, aby kod źródłowy był sprawdzany przez różne osoby. Przekazywanie kodu kilku osobom może przynieść ciekawe rezultaty, bowiem co człowiek to zupełnie inny sposób postrzegania danego problemu. Przeglądanie kodu przez kilka różnych osób zmniejsza ryzyko przeoczenia pewnych ważnych błędów, czy też niedociągnięć, które mogły by zostać przeoczone przy zaangażowaniu w proces code review mniejszej ilości osób. Inspekcja kodu, w którą zaangażowanych jest więcej osób daje więc większą pewność tego, że jest on dopracowany, przejrzysty i niewadliwy. Ponadto wzajemne sprawdzanie kodu jest okazją do dzielenia się swym doświadczeniem i czerpaniem wiedzy od innych developerów, a także możliwością wzajemnego poznania różnych metod pracy. Warto więc zaangażować developerów o różnym doświadczeniu i randze, ponieważ wspólne uczestniczenie w code review stwarza świetne warunki do nauki i rozwoju dla każdej z tych osób.


8. Miej zdrowe podejście do procesu code review


W efekcie przeprowadzonej inspekcji kodu programista otrzymuje swego rodzaju feedback. Otrzymana informacja zwrotna jest konstruktywną opinią osoby sprawdzającej kod. Ważne jest, aby autor programu umiał odpowiednio przyjąć słowa konstruktywnej krytyki, nie odbierając jej personalnie, lecz traktując ją jako potrzebną i dobrą radę na przyszłość, która w efekcie końcowym przyczynia się do tego, że zaprojektowany program, czy aplikacja są bezbłędne i jak najlepsze jakościowo. Założeniem code review nie jest udowodnienie, że ktoś jest niekompetentnym programistą lub stwierdzenie, że nie nadaje się on do tego zawodu, tylko ocenę samego programu. Głównym celem jest dostrzeżenie wszelkich niedociągnięć w kodzie. Code review nie ma pogrążyć developera, lecz wskazać te obszary, które mogą zostać poprawione, tak by w efekcie końcowym oddana do użytku aplikacja, czy program był bezbłędny i jak najlepszy jakościowo. Tak więc ideą code review jest troska o wspólne dobro, bowiem przeglądający kod źródłowy bierze poniekąd współodpowiedzialność za jego odpowiednie działanie.


9. Dziel code review na etapy


Chcąc przeprowadzić skuteczny code review, należy wnikliwie przejrzeć kod, linijka po linijce. Żeby nie pominąć żadnej ważnej rzeczy z uwagi na zbyt duży natłok informacji, warto podzielić code review na kilka mniejszych etapów, przeglądając kod po kilka fragmentów, analizując kod stopniowo, kawałek po kawałku. Przegląd zbyt długiego fragmentu kodu mógłby być męczący i tym samym mało efektywny. Dzięki takiemu podejściu developer jest w stanie przeprowadzić inspekcję bardziej efektywnie i z większą dokładnością. Tym samym zmniejsza się ryzyko pominięcia ważnych kwestii i przeoczenia występujących nieprawidłowości w działaniu kodu.


10. Stosuj adnotacje i komentarze


Aby usprawnić procedurę przeprowadzania code review i jak najlepiej przekazać recenzentowi wszystkie założenia, warto zapisać je już na etapie tworzenia kodu. Jeśli opatrzysz kod odpowiednimi komentarzami, recenzent łatwiej zrozumie użyte metody, zastosowane funkcjonalności oraz to, jakie działania wywołuje każda z linijek kodu. Jeśli wprowadzałeś jakieś zmiany, z pewnością obecność takich komentarzy pozwoli zrozumieć zasadność wprowadzenia różnych modyfikacji.


Podsumowanie


Jak widać, na jakość i efektywność code review ma wpływ wiele czynników. Warto więc podchodzić do tego procesu w sposób rzetelny i świadomy, wypracowując w sobie ważne i wartościowe postawy i nawyki. Dobrze więc zwrócić uwagę na wszystkie te aspekty, aby mieć pewność, że zrobiliśmy wszystko co w naszej mocy, by uzyskać jak najlepsze efekty przeprowadzonej inspekcji.

Prawidłowo wykonany przegląd kodu jest szansą wyciągnięcia ważnych i potrzebnych wniosków na przyszłość, przyczyniając się tym samym do zmniejszenia ryzyka powielania tych samych, często powtarzających się błędów. W rezultacie prawidłowo przeprowadzonego code review zyskuje się wysokiej jakości oprogramowanie. Zastosowana procedura przeglądu kodu zmniejsza ryzyko pojawienia się pewnych nieprawidłowości w działaniu kodu źródłowego takiejże aplikacji, lub programu.

Efekty dobrze przeprowadzonego code review odczuwa nie tylko autor danego oprogramowania, lecz także cały zespół developerski, ponieważ udział w procedurze inspekcji kodu jest bardzo uczącym doświadczeniem dla każdego zaangażowanego w jej realizację, będąc jednocześnie inspiracją i motywacją do działania wszystkich członków zespołu.

To wszystkie na dzisiaj. Jeżeli taki artykuł Ci się spodobał, to koniecznie dołącz do mojej społeczności – darmowe zapisy, gdzie będziesz również miał dostęp do dodatkowych materiałów i przede wszystkim bonusów. Do zobaczenia w kolejnym artykule.

Poprzedni artykuł - 100 Najlepszych Pomysłów Na Aplikacje – Nauczysz Się Programować i Zbudujesz Portfolio (Bonus – Kopie Dużych Aplikacji)
Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
Programista C#/.NET. Specjalizuje się w ASP.NET Core, ASP.NET MVC, ASP.NET Web API, Blazor, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz

Wyszukiwarka

© Copyright 2022 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Polityka prywatności. Design by Kazimierz Szpin