proč je kvalita kódu tak velký problém pro vývojáře?
Kód kvality se může promítnout do, jak užitečné a udržovatelný kód je: vysoce kvalitní kód může být použit znovu a znovu vyvinula; low-kvalitní kód nevydrží.
Projekty jsou často závod s časem, a rozpočet tak těsný, že počítání na pár rukou psát kód, je chiméra. Řezání rohů se může zdát snadnou cestou, ale z dlouhodobého hlediska se to nevyplatí.
dobře strukturovaný kód, podle jazykových pravidel, je mnohem snazší číst a rozumět různým prohlížečům a dalším vývojářům. Je také spolehlivější a vyhýbá se budoucím přepracování.
Softwarové projekty může být předmětem různých omezení v různých fázích (od požadavků na analýzu, vývoj, testování, rozmístění a údržba), což může někdy vést k kód sám nakládáno jako nejméně důležitý aspekt (funkce nad formou). Jednou z nejdůležitějších — a často zapomenutých-vlastností dobrého softwaru je však jeho kvalita kódu.
Kód kvalita může být měřena v mnoha různými způsoby, ale některé z nejdůležitějších aspektů jsou:
- Srozumitelnost, konzistence — jak snadné je číst a pochopit, úseky kódu; to zahrnuje kód, přehlednost, jednoduchost, a dokumentace.
- předvídatelnost, spolehlivost a robustnost-chování softwaru by mělo být předvídatelné a nemělo by být náchylné ke skrytým chybám.
- udržovatelnost a rozšiřitelnost-oprava, aktualizace a vylepšení softwaru by měly být co nejjednodušší, nikoli ze své podstaty složité.
proč záleží na kvalitě kódu?
vzhledem k obvyklým omezením, které se již vyskytují ve vývoji softwaru, proč by měla být snaha o vytvoření kódu kvality tak důležitá?
Psát kvalitní kód by neměly být považovány za časově náročný úkol, ale spíše jako jeden z hlavních cílů při vývoji softwaru; to by mělo být považováno za zásadní investici, na které návrat bude následovat téměř okamžitě:
- Kód, který je velmi čitelný, konzistentní a dokumentovaný je jednodušší kontrolovat, což vede k mnohem nižší úsilí vývoje.
- čistý a elegantní kód je také mnohem snazší pochopit, udržovat a rozšiřovat.
- Software, který je dobře navržen a dosahuje nižší kód složitost také těží hodně z hlediska testovatelnosti a odolnost (méně náchylný k nové chyby zaváděny).
vysoká kvalita kódu je v podstatě jedním z nejúčinnějších způsobů snižování technického dluhu.
dovolte mi ukázat vám příklad
nekvalitní kód může být obvykle způsoben:
- nedostatek (nebo nedostatečné) kódování styl / standardy.
- ne / špatná dokumentace.
- špatně navržená Architektura (bez oddělení odpovědnosti, jako v MVC).
- Vysoká metoda složitost
V následujícím příkladu účelem metody nelze jednoznačně identifikovat bez pečlivé vyšetření:
- Neexistuje žádná funkce dokumentace, žádný komentář řádky, a bez zjevného standard kódování následuje (vidět například v použití složených závorek a prázdné řádky).
- složitost je relativně vysoká kvůli počtu různých akcí a procesů (DB dotazy, zobrazení/výstup a obchodní logika), více úrovní vnoření.
- existuje nekonzistence ve způsobech provádění výstupu a interpolace proměnných.
vzhledem ke své nízké kvalitě je Kód náchylný k chybám/chybám (nemluvě o bezpečnostních obavách) a je obtížné jej správně otestovat.
kromě toho budou jakékoli změny softwaru pravděpodobně mít za následek zvýšené úsilí o vývoj a testování a stále budou mít za následek zavedení potenciálních nových chyb.
na opačné straně je klíčovým aspektem kvality dodržování kódovacího standardu a dokumentačního kódu.
náhodný příklad toho lze vidět na následujícím obrázku, část řadiče Frameworkbundle společnosti Symfony.php:
Kromě toho metoda/parametr dokumentaci, můžeme jasně vidět, že:
- kód je jednoduchý a self-vysvětlující.
- různé logické sekce jsou odděleny prázdnými řádky.
- existuje jen málo úrovní vnoření/odsazení, s předčasnými návratovými prohlášeními.
- existují správné konstrukční úvahy (oddělení odpovědnosti různými objekty/třídami).
- Vzhledem k vysokému kód kvality a srozumitelnosti třída/metoda by měla být snadno testovat a udržovat, s nízkými úsilí; pravděpodobnost chyby vyskytující měl být také extrémně nízká.
jak lze dosáhnout vysoké kvality kódu?
zde je několik tipů:
- výběr vhodného standardu kódování (stylu) pro jazyk nebo rámec. Například pro PHP lze PSR-2 považovat za aktuální standardní doporučení. Je možné integrovat nástroje CS fixer do vašeho vývojového prostředí (viz php-cs-fixer)
- konzistence v názvech tříd, metod a proměnných je dalším důležitým faktorem čitelnosti.
- ujistěte se, že správně dokumentovat třídy, vlastnosti, metody a konkrétní bloky kódu v případě potřeby, zajištění komentáře jsou jednoduché, stručné a efektivní.
- refaktorování a výběr správných návrhových vzorů je dobrým způsobem, jak podpořit opětovnou použitelnost a rozšiřitelnost kódu a dosáhnout složitosti nižší třídy/metody.
- přidání nástrojů pro analýzu kódu do prostředí CI, které mají být provedeny před sloučením nových změn. Pro PHP, phpmd a / nebo phpstan jsou nástroje, které mohou varovat před možnými problémy v kódu a mají řadu různých konfigurovatelných pravidel.
- automatizované testování je další nutností; nejenže pomůže předcházet novým chybám, ale také zajistí, že splňuje požadavky a správně reaguje na různé vstupy.
- Konečně, využití nástrojů, jako jsou scrutinizer-ci a Codacy pro testování a zobrazení jasný přehled o kvalitě projektu, v průběhu času, a důležité detaily o tom, co a kde jsou problémy.
Spodní řádek
bez Ohledu na vývoj metodik, jazyků, frameworků nebo nástroje, prosazovat vysokou kvalitu kódu je způsob, jak dosáhnout rychlejší a snadnější vývoj, testování a údržbu, což má za následek snížení nákladů na vlastnictví softwaru.
napsal João Inácio / Senior vývojář a vedoucí týmu na Cleverti
tento článek byl původně publikován na Cleverti blogu