Když potřebujete psát čistší kód: ES6 funkce v praxi

From IT-Core
Revision as of 04:30, 29 August 2026 by JeroldDacre246 (talk | contribs) (Created page with "<br>Praktická rada pro každodenní práci: naučte se kombinovat nové funkce s existujícím kódem. Nemusíte přepisovat vše najednou. Začněte s tam, kde se nejvíce opakuje vzor „zkopíruj a vlož". Typický případ je ošetření konfigurace komponenty. Místo pěti řádků podmínek použijte destrukci s výchozími hodnotami a zbytek nechte být. Zároveň si dávejte pozor na zpětnou kompatibilitu – starší prohlížeče nepodporují ES6+ syntaxi bez...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Praktická rada pro každodenní práci: naučte se kombinovat nové funkce s existujícím kódem. Nemusíte přepisovat vše najednou. Začněte s tam, kde se nejvíce opakuje vzor „zkopíruj a vlož". Typický případ je ošetření konfigurace komponenty. Místo pěti řádků podmínek použijte destrukci s výchozími hodnotami a zbytek nechte být. Zároveň si dávejte pozor na zpětnou kompatibilitu – starší prohlížeče nepodporují ES6+ syntaxi bez transpilace. Pokud píšete kód pro prostředí, kde nemůžete použít build nástroje, raději používejte pouze bezpečné části specifikace, jako jsou výchozí parametry (které jsou podporované široce) a vyhněte se třeba optional chaining, který je novější.

Při práci s knihovnami třetích stran narazíte na situaci, kdy chybí typy. Mnoho populárních balíčků má typy v @types/ název-balíčku, ale ne všechny. Pokud typy chybí, nepište si hned vlastní – zkuste nejprve balíček @types/… vyhledat. Když opravdu neexistují, vytvořte si deklaraci v souboru .d.ts, kde typy popíšete ručně. Tento soubor pak stačí přidat do tsconfig.json. Vyhnete se tak použití any a budete mít lepší podporu v editoru.

Na závěr si nastavte logování požadavků a odpovědí, ale jen v nezbytné míře – citlivé údaje vynechejte. Díky tomu budete schopni zpětně dohledat, co se pokazilo. Otestujte si také chování při výpadku API – váš program by měl elegantně počkat a zkusit to znovu, ne spadnout. Až budete mít první funkční volání, zkuste přidat zpracování chyb a odeslání dat. Tím získáte solidní základ pro práci s jakýmkoli rozhraním.

Na závěr si osvojte spouštění testů. V terminálu stačí napsat pytest a nástroj projde celý projekt. Pokud chcete spustit jen jeden soubor, přidejte jeho název: pytest test_math.py. Pro podrobnější výpis použijte přepínač -v, který ukáže, které testy prošly a které selhaly. Když test selže, nezoufejte – je to příležitost zjistit, co se děje. Pytest vám ukáže přesný řádek, kde chyba nastala, a porovná očekávanou a skutečnou hodnotu. Tím se testování stává nejen kontrolou, ale i nástrojem pro pochopení vlastního kódu.

Nejlepší způsob, jak začít, není konverze celého projektu přes noc. Vezměte si nový malý modul, funkci nebo komponentu a napište ji v TypeScriptu. Pokud používáte Node.js, stačí nainstalovat TypeScript jako lokální závislost a vytvořit konfigurační soubor tsconfig.json. V něm si nastavte alespoň target na ES2020 a strict na true. Zapnutý strict režim vás donutí ošetřit možnost null a undefined hned od začátku, což je nejčastější zdroj chyb. Bez strict budete mít falešný pocit bezpečí a typové kontroly vám toho moc neřeknou.

Největší past: spoléhat se na jeden systém Dalším častým omylem je věřit, že Grid je vždy lepší. Není. Pro jednorozměrné řady je Flexbox přirozenější, protože umí prvky automaticky zarovnat a obalit. Když potřebujete, aby se položky v navigaci roztáhly na celou šířku a mezery mezi nimi zůstaly stejné, Flexbox s justify-content: space-between je nenahraditelný. Grid by pro totéž vyžadoval zbytečné definice sloupců. Správné rozhodnutí poznáte podle otázky: „Potřebuji řídit i řádky, ne jen pořadí v řadě?" Pokud ano, sáhněte po Gridu.

Destrukce a rest operátor: čitelnější data i volání funkcí Destrukce objektů a polí umožňuje rozbalit data do samostatných proměnných jediným příkazem. Místo const name = user.name pro každou vlastnost napíšete const name, age = user. To zkracuje kód a hlavně zpřehledňuje, která data funkce skutečně potřebuje. Ale pozor na chybu: pokud destrukujete neexistující vlastnost, dostanete undefined, což může vést k nenápadným chybám. Vždy proto zvažte výchozí hodnoty: proměna Bytu const name = 'Neznámý' = user. U polí zase oceníte rest operátor, který vám umožní vzít prvky od určitého indexu dál: const [prvni, ...zbytek] = pole. Tento zápis je výborný pro práci s proměnným počtem argumentů funkcí.

Při psaní testů se vyplatí myslet na hraniční hodnoty. Test, který ověřuje, že funkce vrací správný výsledek pro běžné vstupy, je užitečný, ale často zapomínáte na prázdné seznamy, None nebo extrémní čísla. Pytest vám pomůže odhalit tyto skryté chyby. Důležité je také testovat výstupní stav – ne jen to, že funkce nespadne. Místo abyste psali assert funkce_vraci_vysledek(), raději ověřte, že výsledek odpovídá očekávané hodnotě. To je zásadní rozdíl mezi slabým a silným testem.

Jaké typy používáte a kde děláte nejčastější chyby Základní typy jako string, number, boolean a pole znáte z JavaScriptu. V TypeScriptu ale přibývá tuple, enum, unknown a never. Začněte s tím, co používáte denně: interface pro objekty, type pro uniony a generické funkce pro práci s poli. Nejčastější chyba začátečníků je použití any na všechno, co neznají. Tím vypnete veškerou ochranu a dostanete se zpět k JavaScriptu. Místo any zkuste unknown a pak hodnotu zúžte pomocí podmínky. Pokud nevíte, jaký typ má být, podívejte se na to, jak data vznikají a jak je konzumujete – typ se z toho dá odvodit.

Should you loved this article and you would love to receive more details with regards to jak zařídit malou kuchyni generously visit the web page.