In urma discutiilor pe marginea Coding Standards ne-am dat seama ca ar fi bine sa reglementam un pic si code review-urile (pe care le practicam curent la Caphyon). La noi Code Review este un proces de examinare, intelegere, dezbatere si in final aprobare a codului cuiva de catre un coleg programator.
De ce facem Code Reviews?
Beneficii:
- Bugfixes – gasire si rezolvare a defectelor
- Invatare – transfer de cunostinte intre programatori
Dezavantajele sunt timpului consumat si intreruperile iar pe acestea incercam sa le minimizam.
Cine-ti face Code Review?
La marea majoritatea a functiilor noi non-triviale se lucreaza in echipe de (minim) doi. In acest caz un partener este cel mai bun candidat pentru review. In celelalte cazuri, un coleg care vrea sa invete zona de cod in care lucrezi, cineva care deja a lucrat acolo si stie bine designul, sau ti-e dator cu un review. Quid pro quo.
Proces de review continuu
Pentru minimizarea impactului asupra productivitatii, review-urile sunt integrate in procesul de dezvoltare de la inceput pina la sfarsit. Reviewer-ul participa la discutia initiala de design si la discutiile ulterioare de rafinare a designului (de obicei dupa startul implementarii).
Reviewer-ul este adaugat ca watcher la bug in sistemul de gestiune a bugurilor si va urmari commit-urile asociate in Source Control. La finalul implementarii el este notificat si bugul poate fi inchis doar dupa ce reviewer-ul a adaugat o nota de aprobare.