Code review je základem při vývoji kvalitního software v teamu

code reviewCode review, neboli kontrola kódu je velmi důležitým prvkem při vývoji kvalitního software. V praxi to znamená, že jsou úpravy kódu prováděny odděleně od hlavní aplikace a před sloučením s hlavní aplikací je tento nový kód podstoupen ke kontrole dalšímu vývojáři. Ten následně rozhodne, zda-li je nová část kódu v pořádku nebo kód připomínkuje a vrátí zhotoviteli k opravě. Tento proces vede k tomu, že hlavní aplikace není směsí schopností, názorů a nálad jednotlivých programátorů. Code review vede ke konzistentnímu kódu, snížení chybovosti, zlepšení schopností vývojářů a minimalizaci jejich nenahraditelnosti.

Konzistentí kód

Každý vývojář má nějaké zvyky, zkušenosti a postupy. Některé jsou správné, některé ne. Code review vede vývojáře k tomu, aby nad kódem přemýšleli a debatovali. Časté debaty a konzultace nad kódem vedou k jeho zdokonalování, protože se střetávají myšlenky, zkušenosti a schopnosti všech vývojářů. Pokud jsou debaty konstruktivní a je systém nastaven správně, výsledný kód bude „to nejlepší“ co dokáže team vytvořit. Ve chvíli, kdy dojde ke shodě a nalezení nejlepšího řešení, většina vývojářů začne tento způsob aplikovat i do budoucna, jinak hrozí, že by se jim při code review tato část kódu vrátila k opravě. Výsledný kód tedy není rezprezentací jednotlivce, ale tím nejlepším co team umí.

Snížení chybovosti

Každý manager mi dá jistě za pravdu, že odstranění chyby při vývoji je levnější, než odstranění chyby na běžícím systému (produkci). Když si je vývojář vědom, že jeho kód uvidí někdo další, věnuje zpravidla jeho kvalitě více úsilí. To vede k odstranění některých chyb, které by byly jinak zavedeny do systému. Ale ani nejlepší vývojář není bezchybný. Často se stává, že se při řešení nějakého problému řešitel zasekne nad zvoleným způsobem řešení a přehlédne, že by problém mohl být řešen úplně jinak, lépe. Pohled druhého vývojáře tedy nepřispěje jen k odhalení dalších chyb, ale i špatných řešení.

Zlepšení schopností vývojářů

wtfs_per_minute
code review v praxi

Časté konzultace a debaty nad kódem nutí vývojáře přemýšlet a hledat správná řešení. To vede k samovolnému zlepšování jejich schopností. Tento jev lze dobře pozorovat zvláště, přijde-li do teamu nový vývojář, kdy se mu ze začátku vrací hodně věcí k opravě. Code review ho vede k rychlejšímu zaučení a srovnání s teamem.

Minimalizace nenahraditelnosti

Velmi častým neduhem na projektech bez code review je výskyt nenahraditelných vývojářů. Nenahraditelný vývojář je takový, který vytvořil důležitou část aplikace, o které vlastně nikdo neví jak funguje (po straně kodu) a nikdo do ní nedokáže šáhnout, aniž by se nerozbila její funkčnost a její předělání či refaktoring by byl časově, tedy i finančně nepřijatelný. Nebudu zde rozvádět, co přítomnost takového vývojáře vlastně pro management znamená. Určitě se ale shodneme, že pokud k takové situaci dojde, je to špatně. Code review zajišťuje krom konzistentního kódu, kterému by měla rozumět většina teamu i to, že každou úpravu projde ještě další vývojář. Pokud je code review děláno poctivě a svědomitě, je v teamu minimálně jeden další vývojář, který kódu rozumí a dokáže na něm pracovat.

 

Poznámka na závěr. Z technického hlediska je k aplikaci code review ideální verzovací systém (Git, Mercurial) a issue&project tracking systém s propojením na verzovací systém (nejvíce se mi osvědčila kombinace Jira + Bitbucket).

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *