Úloha 4 – Switch v praxi: přehledné větvení objednávky
Úvod do úlohy
V této závěrečné části se naučíte refaktorovat existující větvení tak, aby bylo čitelné, udržovatelné a bez skrytých chyb. Někdy je dlouhý řetězec else if přehlednější převést na switch, jindy je naopak lepší složitý switch nahradit několika logickými výrazy v if–else. Cílem je umět si položit správné otázky: „Rozhoduji podle jedné hodnoty (hodí se switch) nebo kombinuji více podmínek (hodí se if–else)?“, „Je zápis konzistentní a doplněný komentáři?“, „Nemám zbytečné propadávání mezi větvemi?“.
Teorie a principy
-
Kdy zvolit
switch: Rozhodujete podle jednoho výrazu (např. kód stavu, typ akce, název dne) a každá větev je nezávislá.switchporovnává hodnoty striktně (jako===), a je tím pádem přesný. -
Kdy zvolit
if–else: Potřebujete kombinovat více logických testů (např. rozsahy čísel, vícenásobné podmínky s&&a||).if–elseje pružnější a čitelnější. -
Konzistence a komentáře: Každou větev krátce popište – co přesně řeší. Usnadní to čtení i budoucí změny.
-
Bezpečné ukončování větví: U
switchpoužívejtebreakna konci každéhocase, pokud záměrně nechcete propadávat. -
Jedno místo pravdy: Společné kroky provádějte ideálně jednou mimo větvení (např. přiřazení textu do DOM až po výběru výsledku).
-
Datové typy: U
switchsi hlídejte typy (příchod z formuláře bývá řetězec). -
Styl v tomto kurzu: Bez
var, pouzeletaconst. V podmínkách explicitně porovnáváme:if (podminka == true), pro negaciif (podminka == false)(ekvivalent!podminkalze uvést v komentáři). Nepoužíváme ternární operátor.
Praktické příklady kódu
1) Dlouhé else if → přehledný switch
Původní kód: volba zprávy podle kódu. Mnoho else if začíná být nepřehledných.
Refaktor na switch – rozhodujeme podle jedné hodnoty kod, větve jsou nezávislé:
2) Zbytečně složitý switch → jasné if–else s logikou
Původní switch se snaží řešit rozsahy bodů. To je nepraktické, protože switch testuje na konkrétní hodnoty.
Refaktor na if–else: pro rozsahy je to přirozenější a čitelné.
3) Jednotné místo pro výstup (HTML/JS) + komentáře větví
4) Kontrolní seznam pro refaktoring větvení (mini checklist)
-
Rozhoduji podle jedné hodnoty? → zvažte
switch. -
Kombinuji více výrazů (rozsahy,
&&,||)? → zvažteif–else. -
Je kód bez duplicit? Společné kroky proveďte jednou mimo větvení.
-
Jsou všude komentáře k větvím? Stručně vysvětlete záměr každé větve.
-
U
switchje všudebreak? Vyhněte se nechtěnému propadávání. -
Je zachována typová shoda?
switchporovnává jako===. -
Je pořadí testů správné? Od nejpřesnějších k obecným.
Typické chyby / záludnosti
-
switch(true)hack: Svádí k psaní rozsahů vswitch, ale zhoršuje čitelnost. Pro rozsahy použijteif–else. -
Chybějící
break: Neplánované propadávání mezi větvemi. -
Míchání typů: Vstupy z formuláře jsou řetězce;
switchpak nemusí najít shodu s číslem. -
Duplicitní kód ve větvích: Sloučit do jednoho společného kroku mimo větvení.
-
Nekonzistentní styl: V kurzu nepoužíváme
var, ternární operátor ani zkrácené formy negace; vifexplicitně porovnáváme (== true,== false).
Shrnutí
-
Refaktoring vybírejte podle povahy rozhodování: jedna hodnota →
switch, více logických podmínek →if–else. -
Udržujte konzistentní styl, přidávejte stručné komentáře k větvím.
-
Ve
switchvždy kontrolujtebreaka uvažtedefaultjako záchytnou větev. -
Společné kroky provádějte jednou mimo větvení (lepší čitelnost, méně chyb).
-
Hlídáte si typovou shodu (u
switchjako===) a vyvarujte se duplicit i nechtěných průběhů.