Každý člověk je omylný, nikdo není dokonalý, ani programátoři nejsou výjimkou. Při programování webů, e-shopů, či našeho redakčního systému BUXUS vzniká velké množství řádků programového kódu.
Při psaní knihy v mateřském jazyce, dochází běžně k překlepům nebo např. slovosledu špatnému. Velmi podobné je to i při programování. Programátoři používají také určitou formu vyjadřování se pomocí „jazyků“. Uvědomme si, že autor píšící v rodném jazyce má výhodu oproti programátorovi, protože svůj jazyk používá celý život. Učil se ho doma, ve škole dlouhé roky, denně ho používá a komunikuje pomocí něho ústně i písemně. A přesto se z času na čas pomýlí.
Může být tedy programátor bez chyby?
E-shop developer se během své práce vyjadřuje písemně a hned v několika cizích jazycích najednou. V naší firmě jsou to hlavně jazyky PHP a JavaScript, ale i mnohé další. Je proto přirozené očekávat určitou míru chybovosti. Při chybě se setkáváme více se syntaktickými chybami, ale při psaní kódu na programátora číhají i další nástrahy.
Kód musí být kromě jiného:
- bezpečný,
- univerzální,
- znovupoužitelný,
- rozšiřitelný,
- snadno čitelný nebo srozumitelný pro ostatní,
- rychlý a efektivní,
- připravený na možné výpadky a problémy,
- musí se snažit odhalit neočekávané situace
- a musí mít mnoho dalších aspektů, které souvisí už s konkrétním programovacím jazykem. Například i taková responzivita na mobilní zařízení.
Programátor má proto nelehký úkol a jeho kód by neměl obsahovat žádné syntaktické, logické ani architektonické chyby.
Code review
Stejně jako kniha prochází korekturou, můžeme podobné postupy aplikovat i při kontrole napsaného kódu. Tuto kontrolu nazýváme Code review. Jde o poměrně běžnou součást fungování softwarových firem. Je součástí moderních standardů a postupů používaných při vývoji. Uičko patří mezi moderní firmy, které berou code review s plnou vážností jako nezbytnou součást dobrého vývoje softwaru.
Programátoři denně přicházejí do kontaktu s obrovským množstvím kódu. Každý developer musí vědět, na co slouží konkrétní část kódu, aby ji uměl použít na jiném místě. Také se může stát, že pokud tuto část použije na jiném místě, právě může dojít k chybě. Tuto chybu musí umět ad1 odhalit a ad2 napravit. Všechny změny v kódu musí dostatečně okomentovat, aby i ostatní programátoři věděli, že něco opravil a přidal do kódu (mimochodem - toto je dost důležité a někdy podceňované). Programátoři se navzájem mohou upozornit na chyby a tak vědí předcházet možným problémům. V naší firmě používáme systém Phabricator, který pomáhá recenzovat části kódu, ale i uložené změny v kódu.
Postup je jednoduchý:
- programátor upraví kód a uloží záznam o změněných řádcích (tzv. commit) pomocí systému git na jeho počítači,
- pošle změny na “code-review” do systému Phabricator a určí lidi, kteří mají code review provést (tzv. revieweři / recenzenti),
- recenzentům přijde email s odkazem na recenzovaný commit v systému Phabricator,
- recenzenti okomentují jednotlivé řádky kódu a schválí commit nebo si vyžádají změny,
- programátorovi přijdou e-maily s komentáři recenzentů,
- programátor buď změní to co mu bylo vytknuto, nebo vysvětlí svá rozhodnutí,
- kroky 1-6 se opakují až dokud recenzenti neschválí commit,
- Phabricator oznámí programátorovi, že jeho změny byly schválené a jsou připravené na nasazení do testovací eventuálně rovnou ostré provozu,
- programátor nasadí změny (a může jít na kávu...).
Nezabírá to zbytečně hodně času, komentovat cizí kód?
Procházení "cizího kódu" sice zabírá nějaký čas, ale bereme to jako nezbytnou součást vývoje na to, abychom mohli produkovat opravdu kvalitní kód, který je nezbytný pro tvorbu kvalitního e-shopu nebo webu.
Code review checklist (zdroj)
Proto i při vývoji CMS BUXUS projde každá změna tímto procesem a přes více programátorů. Díky tomu jsou znalosti o vnitřní funkcionalitě BUXUSu rozděleny mezi více lidí, ošetřených je více případů, samotný systém je díky tomu kvalitnější.
Tento proces také podporuje i vnitrofiremní vzdělávání, protože programátoři se “dotýkají” i kódu svých kolegů a vidí jiná řešení a algoritmy. Získají tak nové zkušenosti a vědomosti, které jsou velmi užitečné v každodenní praxi. Náš tým se neustále rozrůstá a je důležité, aby se noví kolegové dokázali rychle a snadno zorientovat v kódu CMS BUXUSu, věděli jak funguje a uměli pohotově změnit nebo doprogramovat nové funkcionality i podle potřeb našich zákazníků.
Mýlit se je lidské, ale pokud můžeme, měli bychom se chybám alespoň v co největší míře vyhýbat. Při programování to platí několikanásobně. Code review je dobrým pomocníkem při práci programátorů. Dává jim to možnost růst, posouvat se dál. Vidět cizí kód je jako přečíst si novou knihu. V recenzovaném kódu může být hodně zajímavého a poučného. Mnoho nového, co se dá využít při psaní jiného kódu. Hledáním chyb se zrychluje programátorova práce, protože pokud chybu najde a opraví, je velká šance, že se jí příště vyhne.
Zdroj: