Úloha 5 – Validace knihy

Úvod do úlohy

V průběhu vývoje programů se často stává, že původně jednoduchá funkce postupně narůstá a začne obsahovat příliš mnoho kroků najednou. Takový kód je pak těžko čitelný, obtížně se udržuje a ještě hůře testuje. Refaktoring – tedy přeorganizování kódu bez změny jeho funkčnosti – nám pomůže rozdělit složité funkce na menší, přehlednější moduly. Každý modul má jasně vymezenou odpovědnost a dobře zvolený název, takže i jiný programátor okamžitě pochopí, co funkce dělá.


Teorie a principy

  • Modularita: funkce by měla řešit jen jednu věc (princip „Single Responsibility“).

  • Redukce parametrů: příliš mnoho parametrů zhoršuje čitelnost. Pokud funkce potřebuje příliš mnoho vstupů, je vhodné rozdělit ji na více menších funkcí.

  • Smysluplné názvy: název funkce má jasně popisovat, co dělá (overKontakty, spocitejPrumer, zvalidujEmail).

  • Dokumentační komentáře: pomáhají budoucím čtenářům kódu rychle pochopit účel funkce. Vhodné je použít krátké komentáře nad každou funkcí.

  • Výsledek refaktoringu: kód je kratší, přehlednější a snadněji rozšiřitelný.


Praktické příklady kódu

1. Původní (nepřehledná) funkce

Tato funkce dělá příliš mnoho věcí najednou – kontroluje jméno, věk, e-mail i souhlas.

2. Refaktorovaná verze s menšími funkcemi


Typické chyby / záludnosti

  • Funkce dělá příliš mnoho věcí – studenti často nechávají vše v jedné funkci.

  • Duplicitní kód – stejné kontroly se objevují na více místech, přitom by mohly být ve vlastní funkci.

  • Příliš mnoho parametrů – lepší je rozdělit úkol na více menších funkcí.

  • Chybějící komentáře – bez krátkých vysvětlení je i čistý kód pro začátečníka těžší pochopit.


Shrnutí – hlavní body k zapamatování

  • Refaktoring = úprava kódu bez změny funkčnosti.

  • Rozdělte velké funkce na menší, které mají jednu jasnou odpovědnost.

  • Omezte počet parametrů – když jich je moc, rozdělte logiku.

  • Používejte smysluplné názvy funkcí a přidejte krátké komentáře.

  • Výsledkem je modulární, čitelný a snadno rozšiřitelný kód.