Nejčastější chyba je záměna s duhou. Duha vzniká na dešťových kapkách proti Slunci a má vždy červenou na vnější straně. Halo má červenou na vnitřní straně kruhu, irizace nemá pevné pořadí barev. Další chyba je fotit přes špinavý objektiv nebo okno. I sebemenší mastnota rozptýlí světlo a barevné jevy zmizí. Mobil vytáhněte až ve chvíli, kdy jev vidíte na vlastní oči, a clonu nechte otevřenou, ale pozor na přepal – barevné přechody jsou jemné.
První návyk se týká pojmenování. Funkce s názvem zpracujData nic neříká, kdežto vyfiltrujAktivniUzivatele řekne, co čekat, ještě než otevřete tělo. Platí: čím kratší funkce, tím konkrétnější název. Pokud název neumíte vymyslet, funkce pravděpodobně dělá víc věcí a je potřeba ji rozdělit. Nepoužívejte zkratky typu tmp, data2 nebo res — za měsíc je nedekódujete ani vy.
Světlo musí mířit na zrcadlo, ne do stro
Čtvrtý návyk je řešit chyby tam, kde vznikají. Prázdný catch nebo ignorovaný undefined se vrátí jako pád na úplně jiném místě. Pokud funkce může selhat, ať to vrátí jasně: vyhoďte chybu, nebo vraťte null a vždy to zkontrolujte. U asynchronního kódu nezapomínejte na await u každého volání, které ho potřebuje — zapomenutý await je jedna z nejčastějších příčin, proč se data „někdy" nenačtou.
Zásadní je typ matrace. Pěnové matrace potřebují hustší laťkování, ideálně s mezerou mezi lamelami do čtyř centimetrů. Paměťová pěna se ohne přes příliš široké mezery a po čase ztratí tvar. Pružinové matrace naopak ocení o něco větší rozestupy, protože potřebují prostor pro stlačení pružin. Pokud koupíte rošt s příliš hustými lamelami pod pružinovou matraci, budete mít pocit, že spíte na desce.
Pátý návyk je nechat kód mluvit sám za sebe. Komentář, který popisuje, co kód dělá, je většinou zbytečný; komentář, který vysvětluje proč, může zachránit hodiny. Místo // zvyš index napište // přeskoč první prvek, protože obsahuje hlavičku. Stejně tak se nebojte malých čistících commitů — když se za týden vrátíte k chybě, rozdíl mezi „přidán test" a „oprava chyby" vám ušetří hledání. Dodržujte tyto návyky i v malých skriptech, protože právě tam se rozdíl projeví nejdřív.
Proč jsou krátery různě velké a hlubok
Před první jízdou zkontrolujte tlak v pláštěch, dotažení šroubů a seřízení brzd. Přilba musí sedět pevně a být nasazená vodorovně, ne v týlu. Dítě by mělo umět samo nastoupit, rozjet se a zastavit, aniž byste ho přidržovali. Pokud to nezvládá, vraťte se na chvíli k odrážedlu nebo ke kolečkům a zkuste to za pár dní znovu. Netrvejte na tom, že dnes to musí vyjít. Rovnováha přichází ve vlnách a jedna krátká jízda denně vydrží víc než hodina na konci týdne.
Většina času při ladění nejde na složité chyby v algoritmech, ale na to, že za týden nepoznáte, co která funkce dělá. Čistý kód není o estetice, je to investice do toho, že se v problému zorientujete během minut, ne hodin. Pět návyků níže není o dokonalosti, ale o rozhodnutích, která při psaní děláte vědomě a opakovaně.
Malé funkce a jeden úkol Druhý návyk je držet funkci na jedné úrovni abstrakce. Když uvnitř jedné funkce mícháte načtení dat, validaci, transformaci a zápis do DOM, každá změna vás donutí číst celý blok. Rozdělte to: nactiObjednavky, zvalidujObjednavky, vykresliObjednavky. Krátká funkce se snáze testuje a hlavně se v ní chyba izoluje. Typická chyba je předčasná optimalizace — nutit do jedné funkce vše, protože „se to volá jen jednou". To se během vývoje změní.
Třetí návyk je vyhýbat se sdílenému měnitelnému stavu. Když několik funkcí mění stejný objekt, nikdy nevíte, kdo ho přepsal jako první. Vracejte nové hodnoty místo úprav na místě, používejte const a v případě potřeby map, filter, reduce. U velkých objektů si dejte pozor na mělkou kopii — Object.assign nebo spread zkopíruje jen první úroveň a vnořené objekty zůstanou sdílené.
Add new comment