Úloha 4 – Refaktor: push, unshift, splice, slice, concat, join
Úvod do úlohy
Jakmile studenti zvládnou základy polí, jejich vlastnosti a běžné metody, je čas posunout se k reflexi a optimalizaci kódu. V reálných programech se často setkáme s kódem, který zbytečně opakuje stejné kroky – například manuální přidávání prvků přes indexy nebo složité smyčky pro mazání položek. Moderní JavaScript ale nabízí metody, které dokážou tyto postupy nahradit jediným příkazem. Kromě toho můžeme metody řetězit (tzv. method chaining), což zajišťuje, že výsledný kód je nejen kratší, ale i čitelnější a snadněji udržovatelný.
Teorie a principy
-
Refaktoring: přepsání existujícího kódu tak, aby byl čistší a efektivnější, aniž bychom změnili jeho funkčnost.
-
Řetězení metod (method chaining): pokud metoda vrací nové pole nebo jiný objekt, můžeme hned volat další metodu – bez nutnosti ukládat mezivýsledek do proměnné.
-
Například:
pole.slice(1).join(" - ").
-
-
Konzistence kódu: využíváme vestavěné metody (
push,pop,splice,slice,concat,joinatd.), místo abychom psali složité manuální postupy. -
Efektivita a čitelnost: kratší kód srozumitelně ukazuje záměr – je hned jasné, co se děje, místo aby se čtenář probíral smyčkami a podmínkami.
Praktické příklady kódu
1. Ruční úprava pole vs. použití metody
2. Mazání prvků – nevhodně vs. správně
3. Řetězení metod (method chaining)
4. Refaktoring reálného příkladu
Typické chyby / záludnosti
-
Používání indexů místo metod: studenti někdy ručně manipulují s indexy, i když existuje metoda, která udělá totéž.
-
Nejasnost u řetězení: příliš dlouhý řetězec metod může být nepřehledný – lepší je někdy rozdělit na několik kroků.
-
Záměna metod měnících původní pole (
splice,push) s metodami vracejícími nové (slice,concat) – může dojít ke ztrátě dat nebo nečekanému chování. -
Nedodržení konzistence: kombinace ručních zásahů a metod dělá kód chaotickým.
Shrnutí
-
Refaktoring znamená zjednodušit a zpřehlednit stávající kód bez změny jeho výsledku.
-
Řetězení metod (method chaining) umožňuje provádět více operací v jednom kroku.
-
Upřednostňuj vestavěné metody před ruční manipulací s indexy.
-
Rozlišuj metody, které mění původní pole, a ty, které vrací nové.
-
Cílem je konzistentní, efektivní a snadno udržovatelný kód.