5 funkcí JavaScriptu, které zjednoduší každodenní kód

Z Mazovia


Rozhraní versus typové aliasy Rozhraní a typové aliasy vypadají zaměnitelně, ale chovají se jinak. Rozhraní lze rozšiřovat deklarací, takže se hodí pro veřejná API a knihovny. Typové aliasy zvládnou unie, průniky a podmíněné typy, což se hodí pro interní logiku. Typická chyba je použít rozhraní na něco, co potřebuje unii, a pak se divit, že to nejde. If you beloved this article and you also would like to collect more info regarding informace i implore you to visit our web site. Praktické pravidlo: rozhraní pro objekty, které někdo jiný může rozšiřovat, typ pro všechno ostatní. A pozor na indexové signatury – jakmile do rozhraní přidáte [key: string]: any, přestane vás typová kontrola zajímat.

Zjistěte, kdo nese odpovědnost za zálohování a obnovu. Někteří dodavatelé předpokládají, že zálohu řeší databázový administrátor, jiní ji řeší na úrovni aplikace. Pokud se to nevyjasní předem, při havárii se ukáže, že data nejsou konzistentní. Trvejte na tom, aby byl popsaný i postup obnovy do konkrétního času, ne jen poslední zálohy.

Největší past je asynchronní kód. Když se zarážka zastaví uvnitř promise nebo časovače, zásobník volání už dávno neodpovídá tomu, co jste očekávali. Prohlížeče dnes umí zobrazit i asynchronní zásobník, ale musíte si ho zapnout, jinak vidíte jen prázdný seznam. Další častá chyba je ladění v produkční verzi, kde je kód minifikovaný. Zdrojové mapy to řeší, ale jen když jsou správně vygenerované a dostupné. Bez nich se v zastaveném kódu nevyznáte a názvy proměnných jsou jednopísmenné.

Hranice, kterou většina týmů posune pozd

První věc: nakonfigurujte tsconfig.json dřív, než napíšete první řádek. Zapněte strict, noImplicitAny a strictNullChecks. Bez nich je TypeScript jen drahý lint. Naopak target nastavte podle prostředí, kde kód poběží. Pokud vyvíjíte pro starší prohlížeč, target es5; pro moderní runtime klidně es2020. Module nechte na commonjs pro Node, esnext pro bundler. Když to přeskočíte, budete později řešit podivné chyby s importy, které s typy vůbec nesouvisí.

Parametrizace řeší opakované testy se stejnou logikou. Místo pěti funkcí napište jednu a přidejte @pytest.mark.parametrize se seznamem vstupů a očekávaných výstupů. Každá kombinace se objeví jako samostatný test, takže při selhání vidíte přesně, který vstup neprošel. Typická chyba: do parametrů dáváte hodnoty, které spolu nesouvisí, a test pak ověřuje dvě věci najednou. Držte se pravidla, že jeden test kontroluje jeden rekonstrukce koupelny krok za krokem.

TypeScript není nový jazyk, jen nadstavba nad JavaScriptem, která přidává statické typy. Překladač tsc z něj vygeneruje obyčejný JavaScript, takže v prohlížeči běží to, co znáte. Rozdíl je v tom, že chyby najdete už při psaní, ne až v produkci. Vývojáři, kteří přicházejí z JavaScriptu, nejčastěji chybují v tom, že se snaží typovat všechno ručně a od začátku. Praktičtější je nechat typy odvodit a psát je jen tam, kde to má smysl.

Typy třetích stran řešte přes @types, ale ne slepě. Některé balíčky už typy obsahují, jinde jsou zastaralé. Když typy chybí, napište minimální deklaraci místo any pro celý modul. A hlavně: neignorujte chyby překladače pomocí @ts-ignore. Každý ignorovaný řádek je dluh, který se vrátí. Pokud opravdu potřebujete výjimku, použijte @ts-expect-error s komentářem, proč tam je. TypeScript není o tom psát víc kódu, ale o tom psát kód, který se dá bezpečně měnit.

Unie a typové stráže jsou denní chléb. Místo boolean příznaku použijte diskriminovanou unii s jedním polem, které rozhoduje. Přepínač pak funguje jako kontrola vyčerpání a při přidání nové varianty osvětlení v obývákuás překladač upozorní. Když potřebujete zúžit typ, použijte typeof, instanceof nebo vlastní predikát s návratovým typem x is T. Vyhněte se přetypování přes as, pokud to není poslední možnost. As jen umlčí překladač, ale chybu neodstraní – jen ji přesune do běhu.

Osvojení těchto pěti funkcí zabere odpoledne, ale zlepší kvalitu kódu na dlouhé měsíce. Vyhněte se kopírování starých vzorů a nebojte se experimentovat. Stačí si je postupně zažít na malých úlohách a brzy zjistíte, že bez nich už psát nechcete.

Moderní JavaScript nabízí řadu funkcí, které zjednodušují psaní kódu a zvyšují jeho čitelnost. Mnoho vývojářů však stále používá staré postupy, protože si na nové syntaxe jednoduše nezvykli. Přitom stačí málo a kód se zkrátí o desítky řádků. Následující přehled představuje pět praktických funkcí, které se vyplatí používat denně.

Šablony řetězců, destrukce a další pomocníci Šablonové literály (template literals) umožňují vkládat proměnné přímo do řetězce pomocí zpětných apostrofů a syntaxe $proměnná. Odpadá tak zbytečné spojování pomocí plus. Typická chyba: zapomenutí zpětných apostrofů místo běžných uvozovek, což vede k chybě syntaxe. Dále destrukce (destructuring) zjednodušuje přístup k vlastnostem objektů a prvkům polí. Místo const jmeno = uzivatel.jmeno; const vek = uzivatel.vek; stačí napsat const jmeno, více o tom vek = uzivatel;. Pozor na vnořené objekty – je třeba je destruovat postupně.