Co zyskáš, když v projektu povolíš TypeScript

Poslední věc, kterou je dobré řešit včas, je build. TypeScript se musí zkompilovat do JavaScriptu, a to buď před nasazením, nebo průběžně při vývoji. Pokud se kompilace a spouštění rozjedou, vznikají zdánlivě nepochopitelné chyby. Drž výstupní adresář oddělený od zdrojových souborů a nástroje pro vývoj nastav tak, aby pracovaly se zdroji, ne s výstupem. Tím se vyhneš zmatkům, které s typovým systémem vůbec nesouvisí.

Začátečníci často vkládají veškerý obsah do jediného odstavce a zalamování řádků řeší prázdnými řádky. Prohlížeč je ale ignoruje. Výsledkem je nečitelná změť, kterou nelze nastylovat ani zpřístupnit. Místo toho se používají sémantické značky: nadpisy podle úrovně, odstavce, seznamy, odkazy a obrázky s alternativním textem. Alternativní text není formalita, pomáhá lidem se čtečkou obrazovky a zobrazí se, když se obrázek nenačte.

Express sám o sobě neřeší bezpečnost ani výkon. Nastavte limit velikosti těla požadavku, vypněte hlavičku s informací o technologii a při nasazení za proxy povolte důvěru v předávané hlavičky, jinak budou IP adresy a protokoly nesprávné. Pro produkci zvažte, zda potřebujete plný Express, nebo stačí jeho lehčí alternativa – čím méně middlewaru, tím méně míst, kde může vzniknout chyba.

Middleware a pořadí, které rozhoduje Middleware jsou funkce, které běží mezi příchodem požadavku a odesláním odpovědi. Mají přístup k požadavku, odpovědi a funkci next. Pořadí registrace je závazné: chyba v něm se projeví tak, že se část kódu nikdy nespustí, nebo naopak proběhne dvakrát. Častý omyl je volat next po odeslání odpovědi – tím se spustí další middleware a dojde k chybě o hlavičkách, které už byly odeslány. Stejně tak platí, že pokud handler neukončí odpověď ani nezavolá next, požadavek visí do timeoutu.

Zaveďte oddělené spouštění: jednotkové testy při každém uložení souboru, integrační před commitem nebo v CI. Nikdy nemíchejte obě vrstvy v jednom cíli, jinak přijdete o rychlou zpětnou vazbu. Sdílená fixtures a pomocné buildery držte v samostatném modulu, ať se nekopírují mezi vrstvami. Pozor na globální stav – statické proměnné, mezipaměti a časovače způsobují, že integrační testy procházejí jen v určitém pořadí.

Validace vstupu patří na začátek řetězce, ne do logiky. Tělo požadavku ověřte na přítomnost povinných polí a typů, teprve pak sahejte do databáze. Stavové kódy používejte podle významu: 400 pro neplatný vstup, 404 pro nenalezený záznam, 409 pro konflikt, 500 pro neočekávanou chybu. Odesílat vždy 200 i při chybě ztěžuje ladění na straně klienta i monitoring.

Při odhadu analytiky se ptejte na konkrétní věci: Kolik lidí musíme vyslechnout? Existuje už nějaká dokumentace? Jak moc se liší stávající systémy? Kolik variant scénářů musíme pokrýt? Kdo bude schvalovat výstup? Každá z těchto otázek může odhad posunout o dny. Typická chyba je odhadnout analytiku jako „půl dne na schůzku”, i když schůzka je jen začátek a skutečná práce přichází po ní.

Základ API stojí na několika málo věcech. Vytvoříte instanci aplikace, zaregistrujete middleware pro parsování JSON a definujete trasy metodami jako get, post, put a delete. Server spustíte přes listen na konkrétním portu. Užitečné je oddělit definici tras od jejich obsluhy: trasa určuje cestu a metodu, handler dostane požadavek a odpověď. Když se to smíchá do jednoho bloku, každá změna URL znamená zásah do logiky.

Chybové stavy neřešte rozvětvením v každém handleru. Express rozpozná chybový middleware podle čtyř parametrů a zavolá ho, když předáte chybu do next. Vyhozená výjimka v synchronním kódu se zachytí, ale v asynchronní funkci ne – tam je potřeba obalit volání nebo použít vlastní wrapper. Toto je nejčastější zdroj pádů, které se v produkci projeví jako ukončený proces.

Jak začít bez zbytečných potíží První krok je nastavit kompilátor dostatečně volně. Zapni “strict”: true až ve chvíli, kdy máš aspoň základní typy hotové. Příliš brzké zapnutí striktního režimu vede k tomu, že vývojáři začnou obcházet typy přes any, a tím se celý smysl ztratí. Dále si dej pozor na pole typu any. Pokud se objevuje na rozhraních mezi moduly, znamená to, že typová informace někde chybí. Je lepší ji doplnit než ji přemostit.

Typový systém v TypeScriptu je strukturální, ne nominální. Dvě různé třídy se stejným tvarem jsou vzájemně zaměnitelné. To je výhoda při práci s daty z API, ale zároveň past: stačí přejmenovat pole a kompilátor může přestat rozumět. Proto se vyplatí držet typy pohromadě s daty, která popisují. Když se mění odpověď serveru, mění se i rozhraní, a to je vidět na jednom místě.

If you have any queries relating to in which and how to use http://Bbs.97wanwan.com, you can make contact with us at our website.

Leave a Comment

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