Gratulujeme! Úspěšně jste se přihlásili k odběru novinek Frontend Garden.
Ajaj. Při pokusu o přihlášení k odběru novinek došlo k chybě. Zkuste to prosím znovu.
Frontend Garden
  • Články
  • Slovník nové
  • Instagram
  • GitHub
7. červen 2022 —
  • Kvalita kódu
— čtení na 6 min.

Proč (ne)dělat code review?

Pro některé z nás nedílná součást vývoje, pro jiné marnost, která zpomaluje práci na projektu. Kdy dává smysl zavádět code review a jaké výhody může přinést?

Kateřina Klouček Dlouhá

Kateřina Klouček Dlouhá

Katka je kodérkou od roku 2017. V současné chvíli pracuje jako Design System Architect. Oplývá entuziasmem pro vše, co souvisí s UX nebo typografií. Více o autorovi

Proč (ne)dělat code review?

Co firma, to jiný přístup ke code review. V mnoha případech je považováno za přirozenou součást vývoje, zatímco jinde může být na obtíž. Pokud se do problematiky ponoříme více do hloubky, zjistíme, že i kolem zdánlivě jasného tématu existuje řada opomíjených doporučení. Než se na ně podíváme (a to v rámci pokračování článku), pojďme si nejprve připomenout, co code review přesně je a jaké výhody z něj můžete získat vy nebo váš klient.

Dělají vývojáři code review?

V rámci obecného průzkumu jsme se zeptali, zda a proč (ne)děláte code review. Potvrdili jsme si hypotézu, že pro většinu vývojářské komunity se jedná o standard. Přes 90 % respondentů uvedlo, že code review dělá, což je skvělá zpráva.

Výsledek ankety, ve které jsme se ptali frontendistů z facebookové skupiny, zda dělají code review.

Našlo se i pár jedinců, kteří uvedli, že buď teprve plánují code review zavést, nebo tuto myšlenku zcela zavrhli. Ano, nedělat code review je taky odpověď. V ideálním případě by však měla být podložena validními argumenty, proč tomu tak je a jaké výhody přináší alternativní řešení (za předpokladu, že nějaké je).

Co je code review?

Code review, neboli revize kódu, je definováno jako proces analýzy zdrojového kódu ostatními členy týmu. K revizi kódu dochází, jakmile jeden z vývojářů změnil či rozšířil stávající kód a chystá se své změny sloučit do jedné z větví repozitáře.

V jednom diskuzním fóru jsem narazila na hezké shrnutí:

Code review neznamená, že nadřízený kontroluje práci podřízeného. Code review je dalším párem očí, které se dívají na to, co bylo uděláno, co nebylo uděláno, jak to bylo provedeno a jak to řeší daný problém, stejně tak, jak to zapadá do současného kódu a dodržuje stávající standardy pro kódování.

Pokud bychom se na věc měli podívat z hlediska procesů, vypadalo by to zhruba takto:

  1. Vývojář implementuje změny, které si po sobě následně projde a otestuje (!).
  2. Podle příslušného workflow vystaví svůj kód ke code review v podobě pull requestu.
  3. Kolegové co nejdříve pull request projdou, zanalyzují kód a vyhodnotí, zda je za ně práce v pořádku, nebo vyžaduje úpravy.
  4. Pokud práce vyžaduje úpravy, kolegové své připomínky sepíší k pull requestu.
  5. Vývojář projde a zapracuje připomínky od kolegů, případně zdůvodní, proč své řešení považuje za vhodnější.
  6. Jakmile je práce kolegy schválena, může vývojář mergnout své změny do cílové větve a podrobit úpravy dalšímu testování.
Ukázka možného workflow s code review.
👉🏻
Mimochodem, věděli jste, že pull request je to samé co merge request? Jediný rozdíl mezi nimi spočívá ve službě, kterou používáte. Nástroje jako jsou GitHub nebo Bitbucket zvolili název pull request, protože první manuální akcí je získání změn (git pull). GitLab naopak upřednostnil merge request, protože poslední akcí je sloučení změn (git merge).

V čem je code review nenahraditelné?

Mnozí z vás si mohou říct: „K čemu code review, pokud mám napsané testy, které mi pomáhají včas odchytit možné chyby v kódu?“ Náležitě vám patří plusový bod za testy. Efektivní code review se neobejde bez dobře nastavené automatické analýzy kódu. Nicméně…

Ať už se bavíme o statických analyzátorech nebo linterech, tyto nástroje kontrolují pouze strojově zpracovatelné kusy kódu. V žádném případě za vás nepohlídají, jestli:

  • je kód dostatečně čitelný i pro ostatní kolegy, kteří s vámi pracují na projektu,
  • jste zvolili vhodné řešení,
  • kód respektuje všechny standardy a konvence v projektu,
  • jste nevědomky nerozbili jinou část aplikace,
  • kód neobsahuje překlepy v názvu proměnných nebo sémantické chyby.

Některé z těchto úloh bychom zatím mohli jen horkotěžko řešit automatizovaně, takže v této oblasti ještě stále zůstává člověk nenahraditelný (uff 😉).

Výhody code review

Na přínosy revize kódu se lze dívat z více úhlů pohledu, které spolu úzce souvisí. S přimhouřenýma očima je lze rozdělit do tří pomyslných kategorií, a to benefity z pozice vývojáře, projektového manažera či dokonce klienta.

Ve vývojovém týmu může code review přispět například k tomu, že:

  • autor kódu je mnohem víc motivovaný k psaní čitelného a udržitelného kódu, pokud ví, že jeho práci bude někdo kontrolovat,
  • od kolegů je možné získat zpětnou vazbu na svou práci a posouvat se tak ve svém oboru,
  • vývojáři udržují konzistentní postupy, a to i napříč projekty,
  • snižuje riziko konfliktů na projektu a předchází duplicitnímu kódu,
  • přispívá k rozvoji soft skills jako jsou komunikační dovednosti, schopnost vyjádřit/přijmout kritiku či analytické myšlení,
  • umožňují získat či udělit pochvalu dříve než na hodnotících schůzkách.
Jak zlepšit kvalitu kódu pomocí 5 jednoduchých principů
Vydejte se vstříc udržitelnosti a mějte své projekty na úrovni s využitím Software Design Principles. Nejde přitom o nic jiného než aplikování selského rozumu v programování.
Frontend GardenKateřina Dlouhá

Naopak pro projektového manažera může proces code review:

  • snížit chybovost na projektu,
  • zlepšit zastupitelnost vývojářů na projektu,
  • urychlit onboarding nováčků.

A jaké benefity z toho mohou plynout pro klienta? Lze například uvést, že:

  • do budoucna může klientovi ušetřit nemalé množství peněz zbytečně investované do opravy chyb nebo do snížení technického dluhu,
  • vývojový tým je dobře informovaný o aktuálním stavu projektu a pokud má adekvátně nastavené procesy, zvládá svou práci odbavovat rychleji a efektivněji.

Kdy se zavedení code review opravdu vyplácí?

Výhody jsou víc než jasné. Téměř každý vlastník projektu může z code review i v malé míře profitovat. Nicméně, v některých týmech se i přes značné výhody s code review nesetkáváme.

Často může být na vině již zažitá firemní kultura, která dosud zavedení tohoto procesu jednoduše nebrala v potaz. Nebo naopak se tým rozhodl přejít na alternativu, která je kompatibilní s řízením projektu stejně tak jako s mindsetem vývojářů.

Vedle ovací pro code review může zaznít řada protiargumentů: nedostatek zdrojů (čas, peníze, vývojáři), naprostá důvěra v testy nebo prostě a jednoduše se vývojářský tým cítí dostatečně seniorní 🙂.

I když se může zdát, že code review by mělo být součástí každého projektu, nutně to tak být nemusí. Proto je vhodné zvážit:

  • Jaká je životnost projektu?
  • Jaký je rozpočet projektu?
  • Jedná se o kritický systém se specifickými nároky na výkon, bezpečnost nebo spolehlivost?
  • Jak velký tým vývojářů se na něm bude podílet?
  • Jaká je profesní úroveň vývojářů na projektu?

Pokud už teď víte, že se jedná o nemalý projekt s dlouhodobou životností a se specifickými nároky, vězte, že se vyplatí investovat do prostředků, které vám pomůžou s dodáním kvalitního kódu.

Totéž platí v okamžiku, kdy na projektu pracuje větší počet vývojářů a máte navíc ve svém týmu nováčky. Code review může pomoct vývojářům s přehledem o projektu a junioři se můžou lecčemu přiučit od zkušenějších kolegů.

Klíčové otázky

Pokud jste zvážili přínosy code review na svém projektu, pravděpodobně dojdete i k následujícím otázkám. Ty budou předmětem zkoumání v navazujícím článku:

  • Kdo všechno by se měl podílet na code review?
    Opravdu je zapotřebí přizvat každého vývojáře z týmu namísto jednoho či dvou stejně zkušených, ne-li zkušenějších kolegů?
  • Jak by mělo code review probíhat?
    Jak nastavit procesy, priority, odpovědné osoby i očekávané vstupy a výstupy pro jednotlivé fáze code review?
  • Jak důsledně code review provádět?
    Provádět pouze statickou analýzu kódu, nebo změny také testovat?
  • Jak se sladit v týmu?
    Jakou formou by měli kolegové mezi sebou komunikovat a za jakou dobu by měla být práce na code review odbavena?
  • Jak připravit nástroje?
    Ať už používáte GitLab, GitHub nebo Bitbucket, jak tyto nástroje připravit, abyste je využívali co nejefektivněji?
👉🏻
Pokračování příště! Zajímá vás, na co si při code review dát pozor nebo jaké existují alternativy ke code review? Dozvíte se v příštím dílu!

Kateřina Klouček Dlouhá

Kateřina Klouček Dlouhá

Katka je kodérkou od roku 2017. V současné chvíli pracuje jako Design System Architect. Oplývá entuziasmem pro vše, co souvisí s UX nebo typografií. Více o autorovi

Další články od autora:

  • FrontKon 2024 obrazem
  • WebExpo 2024 je za rohem! + SLEVA NA VSTUPENKU
  • Jak zlepšit kvalitu kódu pomocí 5 jednoduchých principů
Více k tématu:
  • Kvalita kódu

Sdílejte

Líbí se vám článek? Podpořte jej sdílením!

X (Twitter) Facebook LinkedIn

Komentujte

Chcete k článku něco doplnit? Našli jste chybu? Napište e-mail.

Adam Kudrna

Nejnovější články

WebExpo — čtení na 3 min.

Pozvánka na WebExpo 2025

Rok se s rokem sešel, přichází měsíc květen a s ním WebExpo 2025, které se po nejistých letech usadilo v tomto jarním termínu. Jaké bude?

  • Adam Kudrna
    Adam Kudrna
Pozvánka na WebExpo 2025
JavaScript — čtení na 10 min.

Jak předcházet chaotické organizaci npm skriptů

Řešíte, jak organizovat skripty napříč projekty přehledně a konzistentně? Inspirujte se systémem, který zjednoduší práci vám i kolegům.

  • Tomáš Litera
    Tomáš Litera
Jak předcházet chaotické organizaci npm skriptů
Reportáž — čtení na 2 min.

FrontKon 2024 obrazem

Frontendisti letos připravili třetí ročník konference FrontKon. Ta se letos historicky poprvé odehrála naživo v Praze, a to v prostorách O2 Universum.

  • Kateřina Klouček Dlouhá
    Kateřina Klouček Dlouhá
FrontKon 2024 obrazem

Odběr novinek

Zadejte svůj e-mail a nenechte si ujít další nové články!

Odesláním formuláře souhlasíte se .
Zpracování osobních údajů probíhá za účelem zasílání newsletteru. Můžete se spolehnout, že vaše osobní údaje nebudeme s nikým sdílet. Z newsletteru se můžete kdykoli odhlásit. Stejně tak můžete kdykoli požádat o úplné smazání svých osobních údajů z naší databáze.
Zkontrolujte svoji e-mailovou schránku a potvrďte své přihlášení kliknutím na odkaz.

Všechna témata

  • Bootstrap
  • CSS
  • Design
  • Dokumentace
  • HTML
  • ITCSS
  • JavaScript
  • Kariéra
  • Kvalita kódu
  • Nástroje
  • No-code
  • Přístupnost
  • PWA
  • Reportáž
  • Rozhovor
  • Rychlost
  • Sass
  • Spolupráce
  • Typografie
  • Variable fonts
  • WebExpo
  • ✏️ Napište článek
  • Autoři
  • Cookies
  • Instagram
  • GitHub

Obsah na tomto webu je publikován pod licencí Creative Commons CC BY-NC 4.0.
Frontend Garden vysázel, zastřihuje a okopává (s ♥️) Adam Kudrna.
Založeno v květnu 2019.