Ú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á. switch porovná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–else je 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 switch používejte break na konci každého case, 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 switch si hlídejte typy (příchod z formuláře bývá řetězec).

  • Styl v tomto kurzu: Bez var, pouze let a const. V podmínkách explicitně porovnáváme: if (podminka == true), pro negaci if (podminka == false) (ekvivalent !podminka lze 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)

  1. Rozhoduji podle jedné hodnoty? → zvažte switch.

  2. Kombinuji více výrazů (rozsahy, &&, ||)? → zvažte if–else.

  3. Je kód bez duplicit? Společné kroky proveďte jednou mimo větvení.

  4. Jsou všude komentáře k větvím? Stručně vysvětlete záměr každé větve.

  5. U switch je všude break? Vyhněte se nechtěnému propadávání.

  6. Je zachována typová shoda? switch porovnává jako ===.

  7. 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ů v switch, ale zhoršuje čitelnost. Pro rozsahy použijte if–else.

  • Chybějící break: Neplánované propadávání mezi větvemi.

  • Míchání typů: Vstupy z formuláře jsou řetězce; switch pak 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; v if explicitně 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 switch vždy kontrolujte break a uvažte default jako 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 switch jako ===) a vyvarujte se duplicit i nechtěných průběhů.