Posledním doporučením je testovat pipeline na menší větvi, ne rovnou na main. Vytvořte si větvičku s názvem test-actions, kde si ověříte, že všechny kroky fungují, a teprve poté změnu sloučíte. Tím se vyhnete situaci, kdy rozbijete produkční nasazení kvůli překlepu v YAML. Až budete mít pipeline stabilní, můžete přidat i nasazení do stagingu před produkci, aby se chyby odhalily dřív.
Nezapomínejte ani na cache závislostí. Bez ní se každý běh pipeline stahuje znovu, což je pomalé a drahé. GitHub Actions má vestavěnou akci pro cache, kterou můžete použít pro npm, pip nebo jiné balíčky. Stačí definovat klíč podle hash souboru package-lock.json a cesty, které chcete ukládat. Tím se doba běhu zkrátí často na polovinu. Zkontrolujte si ale, že cache neobsahuje citlivá data, protože je přístupná jen pro daný běh, ale může být uložena déle.
Než začnete s automatizací, rozhodněte, co přesně chcete pipelinem řešit. GitHub Actions není univerzální nástroj na všechno, ale pro běžné úlohy typu build, testy a nasazení na vlastní server je velmi praktický. Základem je soubor YAML v adresáři .github/workflows, kde definujete triggery, třeba push do větve main nebo pull request. Vyhněte se ale spouštění celého pipeline při každém pushi do libovolné větve – zbytečně plýtváte minutami a zpomalujete vývoj.
První chybou, kterou u začínajících projektů vidím, je všechno nacpané do jednoho souboru. Express umožňuje rozdělit aplikaci na moduly, a to byste měli využít. Místo deseti route handlerů v jednom souboru si vytvořte samostatné soubory pro jednotlivé zdroje (například uživatele, produkty, objednávky). Každý soubor exportuje router, který pak připojíte k hlavní aplikaci. Tím získáte přehlednost a každý router můžete testovat samostatně. Nezapomeňte také na oddělení logiky od samotných route handlerů – validaci, práci s databází a byznys logiku držte v samostatných službách nebo middleware.
S validací souvisí i jednotné zpracování chyb. Express má vestavěný mechanismus pro chybové middleware, který se definuje se čtyřmi argumenty (err, req, res, next). Vytvořte si centrální middleware pro chyby, který zaloguje detailní informace a vrátí klientovi pouze bezpečnou část. Nikdy nevracejte klientovi stack trace nebo interní chyby databáze. Pro produkční prostředí použijte generický formát chyby, který klientovi řekne, co se pokazilo a případně jak to opravit. Pro vývojové prostředí můžete vrátit více detailů.
Poslední doporučení se týká práce s daty a odpověďmi. Stanovte si jednotný formát pro úspěšné i chybové odpovědi. Například pro úspěch vracejte objekt s daty pod klíčem data a pro chybu objekt s klíčem error a popisem. Klient pak nemusí řešit různé struktury. Dále si pohlídejte HTTP status kódy – 200 pro úspěch, 201 pro vytvoření, 204 pro smazání, 400 pro špatný požadavek, 401 pro neautorizovaný přístup, 404 pro nenalezený zdroj. Správné status kódy nejsou formalita, ale důležitá součást API kontraktu. Pokud je nastavíte správně, ušetříte práci frontend vývojářům a dalším konzumentům API.
Při automatizaci testů se zaměřte na stabilní a pomalé UI prvky, jako jsou přihlašovací formuláře, nákupní košík nebo onboarding. Automatizace mobilních testů je náročnější než u webu kvůli dynamickým prvkům a animacím. Používejte nástroje, které umožňují čekání na prvek na základě podmínky, ne jen pevný časový limit. Častou chybou je spoléhat na „sleepy”, které testy zpomalují a činí je křehkými. Místo toho definujte explicitní očekávání, kdy má být prvek viditelný nebo klikatelný.
Stačí pár řádků CSS a layout se vám rozsype na mobilu i na širokém monitoru. Přitom nejde o to psát víc kódu, ale používat moderní nástroje s rozmyslem. Flexbox i CSS Grid mají jasně dané případy, kdy se hodí, a když je zkombinujete správně, získáte responzivní design, který se přizpůsobí bez jediného media query. Největší chyba začátečníků? Berou Grid jako „nový Flexbox” a snaží se s ním postavit všechno. To je cesta k frustraci.
Jedním z nejčastějších omylů je verzování jen zdrojového kódu a zapomínání na konfigurace, databázové migrace nebo skripty pro sestavení. Webové aplikace často potřebují k běhu i něco dalšího, než je samotný kód – třeba soubory pro stylování nebo JavaScriptové závislosti. Pokud tyto soubory máte v repozitáři, ale ostatní je mají odlišně, vzniká nekonzistence mezi prostředími. Doporučuji proto verzovat i soubor, který definuje verze závislostí, a naopak do repozitáře nedávat složky, které se dají kdykoli znovu vytvořit.
Na závěr si shrňme klíčové body: rozdělte aplikaci na moduly, validujte vstupy, centralizujte zpracování chyb a vyřešte asynchronní chyby. Těmito kroky získáte API, které se snadno udržuje, testuje a které vás nepřekvapí v produkci. Express je výkonný nástroj, ale jeho síla se projeví až tehdy, když jej používáte s disciplínou. Vyhnete se tak nejčastějším nástrahám, na které vývojáři narážejí, a vaše API bude připravené na další rozvoj.
If you have any questions with regards to wherever and how to use celý text, you can make contact with us at our own web site.
