Co se stane, když přestanete psát nepořádek v JavaScriptu

Z Mazovia

Podlaha v předsíni je nejdražší plocha, jakou máte – každý centimetr čtvereční zabírá místo, po kterém se chodí. Proto se vyplatí přesunout maximum věcí nahoru. Vysoká úzká skříň od podlahy ke stropu pojme kabáty, vysavač, koště i sezónní obuv. Šířka 40 cm stačí, pokud uvnitř použijete výsuvné tyče a police v plné hloubce. Nad dveřmi bývá 20–30 cm volného prostoru – vejde se tam police na klobouky, rukavice nebo košík na klíče.

Začněte u postele. Zvedněte rošt a změřte vnitřní výšku rámu. Pokud je alespoň dvacet centimetrů, máte prostor na nízké ploché boxy, které se vysouvají jako šuplíky. Když je rám nižší, použijte látkové vaky na zip nebo vakuové pytle s oblečením mimo sezónu. Pozor na dvě věci: nechte u dna mezerník kvůli proudění vzduchu, jinak se ložní prádlo bude potit, a nikdy neukládejte pod postel nic, co potřebujete denně. Jinak budete každé ráno lézt po kolenou a nadávat.

Ložnici řešte přes postel. Pokud má rám s nohami, vejdou se pod něj nízké plastové boxy na ložní prádlo nebo zimní oblečení. Když je rám nízký, použijte ploché vaky na zip, které se zmáčknou. U postele bez úložného prostoru zvažte zvýšení roštu o pár centimetrů – ale jen tehdy, pokud vám to nezhorší vstávání. Nepodceňujte váhu: těžké věci dávejte do spodních boxů, lehké nahoru, jinak se boxy časem rozpadnou.

Druhý častý omyl je příliš velký květináč. Nenáročné pokojovky rostou pomalu a v přemokřeném objemu substrátu se kořeny nedokážou vypořádat s vlhkostí. Vyberte nádobu jen o dva až tři centimetry větší v průměru, než je kořenový bal. Materiál tolik neřešte – terakota lépe dýchá, plast lépe drží vláhu. Podstatné je, aby rostlina v květináči seděla a neklátila se.

Třetí návyk: používejte konzistentní styl a nástroje. Prettier a ESLint nejsou zbytečnost, ale zachytí chyby dřív, než je začnete hledat. Zapněte si kontrolu rovnosti (=== místo ==), zákaz nepoužitých proměnných a upozornění na chybějící await. Právě zapomenutý await je klasika: funkce vrátí Promise, vy s ním pracujete jako s hodnotou, a výsledek je undefined. Linter to odhalí okamžitě, vy nebudete hodinu hledat, proč data chybí.

První návyk: pojmenovávejte věci tak, aby se daly přečíst nahlas. const d = new Date() nikomu nic neřekne, const datumObjednavky = new Date() ano. Platí to i pro funkce: zpracuj(data) je slabé, vypocitejCenuSVatou(data) je jasné. Když po půl roce otevřete soubor, nemusíte znovu zjišťovat, co která zkratka znamená. Vyhněte se i příliš dlouhým názvům, které jen opisují implementaci — název má říkat, co funkce dělá, ne jak to dělá.

Většina času při ladění nejde na složité chyby v logice, ale na chyby, které vznikly zbytečně. Přejmenovaná proměnná, zapomenutý návrat, funkce, která dělá pět věcí najednou. Čistý kód není estetika pro estéty, je to prevence. Následujících pět návyků zkracuje ladění z hodin na minuty.

V malé ložnici je podlaha nejdražší plocha, jakou máte. Proto ji nechte co nejvíc prázdnou a stěhujte věci nahoru. Komoda místo nožiček na podlaze může stát na nízkém podstavci, pod který vsunete koše. Skříň doplňte druhou tyčí na věšáky v úrovni, kde běžně končí košile. Nad dveřmi vznikne pruh, kam se vejde police na kufry a zimní deky. Když už police přidáváte, držte se pravidla, že horní hrana nábytku má tvořit jednu linii. Rozházené výšky dělají místnost ještě menší, i když je úložiště sebevíc.

Pátý návyk: pište komentáře k rozhodnutím, ne k syntaxi. // zvýšíme o jedničku nemá cenu, ale // API vrací data v jiném pořadí, proto řadíme ručně ušetří hodiny. Komentář má vysvětlit proč, ne co. Když kód potřebuje komentář k tomu, co dělá, je pravděpodobně příliš složitý.

Čtvrtý návyk: nikdy neopakujte stejný kód na více místech. Zkopírovaný blok se při opravě zapomene upravit jinde a vznikne chyba, která se projeví jen v některých případech. Když se stejná logika objeví potřetí, přesuňte ji do funkce nebo konstanty. Stejně tak držte konfiguraci na jednom místě — rozeseté hodnoty v celém projektu se ladí obzvlášť špatně.

Malé funkce a jediná odpovědnost Druhý návyk: držte funkce krátké a s jedním úkolem. Funkce, která načítá data, validuje je, ukládá a ještě vykresluje, se ladí nejhůř, protože nevíte, která část selhala. Rozdělte ji na nactiData(), validujData(), ulozData(). Každou pak otestujete samostatně. Typická chyba je předávat příliš mnoho parametrů — jakmile jich je víc než tři, zvažte objekt. A pozor na vedlejší efekty: funkce, která mění stav mimo sebe, je zdrojem nepředvídatelných chyb.