For

Šifrovací hra pro děti: chyba, která zničí celé odpoledne

Poslední věc, kterou většina lidí podcení: drenáž. Bez keramzitu nebo hrubého písku na dně se voda drží u kořenů a při každé zálivce se situace zhoršuje. Zalévejte tak, aby voda protekla dnem a přebytek jste vylili z podmisky do hodiny. Rostlina, která stojí v misce s vodou, uhyne rychleji než ta, kterou zapomenete zalít.

Světlo na balkoně není totéž co světlo na zahradě. Odraz od fasády, stín protějšího domu a přesah střechy mění podmínky během dne. Udělejte jednoduchý test: postavte na parapet nebo na zem bílý papír a sledujte, kdy na něj dopadá přímé slunce. Zapište si počet hodin. Pokud má balkon přímé slunce méně než tři hodiny denně, patří mezi stinné. Tři až pět hodin je polostín. Nad pět hodin, zvlášť kolem poledne, je plné slunce. Tento údaj berte vážněji než rady prodavače.

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é.

Šifrovací hra pro děti vypadá jako snadná zábava: schováte pár papírků, vymyslíte heslo a děti běží. V praxi se ale nejčastěji kazí na dvou věcech – šifry jsou buď příliš těžké, nebo příliš lehké, a trasy jsou tak dlouhé, že se děti začnou nudit dřív, než dojdou do cíle. První pravidlo tedy zní: postavte hru na míru věku a počítejte s tím, že každá šifra zabere dětem dvakrát až třikrát víc času, než jste čekali.

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.

Nejdřív zjistěte, kde světlo skutečně je. Večer si stoupněte do dveří a sledujte, které stěny jsou nasvícené a které splývají do stínu. Zrcadlo patří na stěnu, která je na tom nejhůř, ne tam, kde zbylo místo. Pokud je předsíň úzká a dlouhá, dejte zrcadlo na kratší stěnu proti vchodu: pohled se prodlouží a prostor přestane působit jako tunel. Nikdy ho neumisťujte naproti oknu bez závěsu, jinak se v něm bude odrážet jen bílá plocha a oslňovat.

Typická chyba je spoléhat jen na jeden nástroj. Různé systémy mají různé databáze a mohou najít odlišné shody. Proto je vhodné použít alespoň dva nezávislé nástroje a výsledky porovnat. Další častou chybou je kontrola až na poslední chvíli. Pokud zjistíte problém těsně před publikací, nemáte čas text pořádně přepsat. Kontrolujte průběžně, ideálně po dokončení každé větší části. A pozor na automatické překladače – text přeložený z jiného jazyka může vykazovat shodu s původním zdrojem, i když jste ho „jen” přeložili. Originál je pořád cizí dílo.

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.

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í.

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ě.

Č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.

  • ID: 414939

Reviews

There are no reviews yet.

Be the first to review “Šifrovací hra pro děti: chyba, která zničí celé odpoledne”

Your email address will not be published. Required fields are marked *