Proč se bez pěti návyků v JavaScriptu zaseknete na hodiny?

Z Mazovia

Pátý návyk: používej striktní režim a linter od prvního řádku. "use strict" nebo moduly ES odhalí přiřazení do nedefinované proměnné, duplicitní klíče v objektu a další chyby ještě před spuštěním. Linter navíc upozorní na nepoužité proměnné a nedostupné kódy. Bez těchto nástrojů se spoléháte na to, že si všechno zapamatujete, což při větším projektu nejde. Konkrétně: zapněte pravidla pro no-unused-vars, eqeqeq a no-undef. Ladění pak nezačíná u prohlížeče, ale už v editoru.

Než začnete zavádět AI do kancelářských procesů, musíte mít jasno v tom, co vlastně chcete automatizovat. Vezměte si seznam všech rutinních činností, které denně opakujete – přepisování dat z e-mailů do tabulek, třídění faktur, odpovídání na standardní dotazy. U každé položky odhadněte, kolik času zabere a jak často se opakuje. Zaměřte se na ty, které jsou časté, trvají dlouho a mají jasná pravidla. Vyhněte se procesům, kde se podmínky neustále mění nebo kde je potřeba lidský úsudek.

První krok není nové krmivo, ale odměrka. Většina majitelů sype granule od oka a množství postupně roste. Odměřte přesně to, co pes dostává za den, včetně všeho, co ukápne od stolu. Potom snižte dávku o deset až patnáct procent. Nejde o drastickou dietu, ale o malý deficit, který pes snese bez stresu. Krmte dvakrát denně ve stejnou dobu a mezi jídly nic nepřidávejte. Pokud pes žebrá, dejte mu část jeho denní dávky jako odměnu při výcviku, ne navíc.

Největší chyby se opakují pořád dokola. Lidé zapomínají na mezizubní kartáčky a spoléhají jen na ústní vodu. Jiní si po jídle „jen opláchnou ústa" a pokračují v práci, takže plak zůstane pod drátkem celý den. Další chyba je okusování nehtů, tužek nebo víčka od lahve – i tohle dokáže zámeček urvat. A někteří si myslí, že když jsou rovnátka keramická a méně vidět, nemusí si dávat takový pozor. Není to pravda, keramika je křehčí než kov.

Třetí návyk: nikdy neporovnávej přes == ani nepoužívej var. == přetypovává hodnoty a vznikají chyby, které se projeví až v produkci. Vždy === a !==. var má funkční rozsah a jeho hodnota se může změnit na místě, kde to nečekáte. const a let mají blokový rozsah a nutí vás přemýšlet o tom, kde proměnná žije. Pokud potřebujete hodnotu měnit, použijte let, jinak const. Tento jeden návyk odstraní celou kategorii chyb, které se jinak hledají velmi těžko.

První návyk: pojmenovávej proměnné tak, že z názvu poznáš obsah i typ. data, temp nebo result jsou nejčastější zdroj zmatku. Místo const d = new Date() napiš const datumObjednavky = new Date(). Zní to jako maličkost, ale při ladění znovu a znovu čteš, co která hodnota znamená. Pokud název neumíš vymyslet, pravděpodobně dělá proměnná příliš mnoho věcí a patří rozdělit. Typický chyba: vnořené callbacky, kde data znamená v každé úrovni něco jiného.

Doména, platba a chování při náku

Funkce, které dělají jednu věc, se ladí desetkrát rychleji Druhý návyk: každá funkce má dělat přesně jednu věc a mít maximálně tři parametry. Když funkce zároveň validuje vstup, transformuje data a zapisuje do databáze, při chybě nevíš, která část selhala. Rozděl ji na validujVstup(), transformuj() a uloz(). Získáte tím dvě věci: snadno otestujete každou část zvlášť a v chybovém hlášení uvidíte přesné místo. Vyhněte se parametrům jako options, do kterých se postupně přidávají další klíče – za měsíc nikdo nebude vědět, co všechno mají obsahovat.

Každý, kdo někdy ladil cizí JavaScript, zná ten pocit: kód funguje, ale nikdo netuší proč. Většina času při ladění nejde na složité chyby, ale na drobnosti, které vznikly zbytečně. Pět návyků níže není o estetice. Jsou to konkrétní postupy, které zkracují dobu hledání chyby z hodin na minuty.

Záměna hřibu satana za modráka je nejčastější vážná otrava houbami v Česku. Oba rostou ve stejných lesích, ve stejnou dobu a na první pohled mají podobný tvar i barvu klobouku. Rozdíl není v tom, jak houba vypadá v celku, ale v několika znacích, které se projeví až při krájení a při tepelné úpravě. Kdo tyto znaky nezná, riskuje, že si domů přinese jedovatou houbu a bude ji považovat za jedlou.

Čtvrtý návyk: ošetřuj chyby tam, kde vznikají, a nikdy nepolykej výjimky. Prázdný catch {} je nejhorší možná praktika – chyba zmizí a ty hledáš příčinu o dvě vrstvy výš. Do catch vždy napiš alespoň console.error s kontextem, nebo chybu přehoď dál. U asynchronního kódu platí totéž: await bez try/catch znamená, že se chyba projeví jako neúspěšný promise a často ji nikdo nezachytí. Zkontrolujte, zda všechny await jsou uvnitř try, nebo zda máte globální handler.