Úloha 5 – Refaktoring podmínek: predikáty, guard clauses a short-circuit
Úvod do úlohy
Úvod do úlohy – Jak psát čitelné podmínky
Podmínky v JavaScriptu používáme všude – určují, co se má stát, když je něco pravda, a co se má stát, když to pravda není. Proto je důležité naučit se podmínky psát nejen správně, ale i tak, aby byly snadno čitelné. Čitelný kód pomůže tobě i ostatním lidem, kteří budou tvůj program číst.
Teorie a principy
-
Komentuj „proč“ a ne „co“
Místo// zvýšíme věk o 1je lepší napsat// posun na další krok registrace. Komentář by měl vysvětlovat důvod. -
Používej bezpečné porovnávání
-
Vždy piš
===a!==(nikdy jen==nebo!=). -
Díky tomu se nebudou dít neočekávané převody typů (např.
"0" == false).
-
-
Struktura podmínek
-
Začni jednoduchými podmínkami a až potom řeš složitější.
-
Když se něco nedá provést, ukonči funkci hned na začátku – říká se tomu guard clause.
-
-
Používej jasné proměnné
-
Nepiš „kouzelná čísla“ (např.
5uprostřed podmínky). Raději vytvoř konstantuMAX_LOGIN_ATTEMPTS = 5. -
U booleanu piš podmínku vždy srovnáním:
if (isVip == true)místo jenif (isVip).
-
Praktické příklady
1) Kontrola ceny nebo VIP zákazníka
2) Kontrola věku
3) Maximální počet pokusů o přihlášení
4) Jednoduchý HTML/JS příklad
Typické chyby
-
Použití
==místo===→ může vést k chybám (např."0" == falseje true). -
Zapomenuté
== truenebo== falseu boolean proměnných – pro začátečníky to bývá méně jasné. -
Dlouhé podmínky spojené vícekrát
&&a||→ je lepší je rozdělit na menší části. -
Záměna řetězení:
1 < x < 10nefunguje, je nutné psát(x > 1) && (x < 10).
Shrnutí
-
Piš podmínky tak, aby byly srozumitelné na první pohled.
-
Používej
===a!==místo==a!=. -
U booleanu používej srovnání:
if (isVip == true)neboif (isVip == false). -
Začínej jednoduchými testy, složitější nechávej na později.
-
Používej konstanty místo čísel přímo v podmínkách.