5 návyků, které rozhodují o tom, zda zvládneš verzování
Rozvržení se dnes nedělá pomocí tabulek ani plovoucích prvků, ale pomocí mřížky a flexboxu. Flexbox stačí na řazení prvků vedle sebe nebo pod sebe, mřížka zvládne složitější rozvržení se sloupci a řádky. Oba nástroje jsou součástí CSS a nepotřebujete k nim žádnou knihovnu. Kdo je zvládne, obejde se bez zbytečných závislostí a jeho stránky se načtou rychleji.
Většina týmů řeší volbu mezi REST a GraphQL ve chvíli, kdy už mají první endpointy hotové a klient začíná skládat data z několika odpovědí. REST je výchozí volba, která funguje dobře, dokud se počet obrazovek a typů klientů drží na uzdě. GraphQL dává smysl ve chvíli, kdy jeden backend obsluhuje web, mobil a třeba i interní nástroje, které potřebují různou strukturu dat. Rozhodnutí není náboženské, ale provozní.
Proměnné místo přepisování hodnot Nejčastější chyba je natvrdo zapsaná adresa serveru a tokeny v každém požadavku. Jakmile se prostředí změní, musíte vše přepsat. Řešením jsou proměnné prostředí. V Postmanu vytvořte prostředí s proměnnými jako base_url, token nebo userId. V URL a hlavičkách je pak používejte ve dvojitých složených závorkách, například base_url/users/userId. Přepnutí prostředí pak znamená jediné kliknutí a všechny požadavky míří na jiný server. Pozor na to, že proměnná musí být definována ve zvoleném prostředí, jinak ji Postman nevyhodnotí a požadavek selže.
Při práci s tělem požadavku dávejte pozor na Content-Type. Pokud posíláte JSON, musí hlavička Content-Type odpovídat application/json, jinak server tělo neparsuje a vrátí chybu 400 nebo 415. Totéž platí pro formulářová data. Častou chybou je také zapomenutá autentizace – požadavek odešlete bez tokenu a divíte se, proč přichází 401. Do kolekce si proto přidejte Authorization na úrovni kolekce, ne jednotlivých požadavků. Ušetříte si opakované nastavování a snížíte riziko, že někde token chybí.
Postman je nástroj, který usnadňuje odesílání HTTP požadavků a kontrolu odpovědí. Mnozí jej používají jen jako „klikací" klient pro rychlé ověření jednoho endpointu. To je v pořádku, ale skutečný přínos začíná ve chvíli, kdy jej nastavíte tak, aby vám šetřil práci při opakovaném testování. Základem je kolekce – logické seskupení požadavků podle domény nebo funkce. Do kolekce si uložte nejen URL a metodu, ale i hlavičky, tělo požadavku a parametry. Bez uložení se příští spuštění neobejde bez ručního přepisování.
U GraphQL se také mění práce s cache. HTTP cache na úrovni URL zmizí, protože vše jde na jeden endpoint přes POST. Řešením je persistované dotazy, cache na úrovni resolverů nebo dedikovaná vrstva. Pokud tým nemá kapacitu na monitoring a optimalizaci dotazů, bývá REST levnější na provoz i na údržbu. Naopak pokud klienti neustále žádají nové kombinace polí, REST se zvrhne v desítky účelových endpointů a GraphQL je čistší.
Praktické rozhodnutí: začni RESTem, dokud máš pod deset hlavních zdrojů a klientů je málo. Až začne přibývat variant odpovědí, zvaž GraphQL jako bránu před existující služby. Nemusíš přepisovat vše. Nech REST pro zápisové operace a jednoduché čtení, GraphQL nasaď pro složité čtecí scénáře. Vždy měř dobu odpovědi, počet dotazů do databáze a velikost přenášených dat. Právě tato čísla ukážou, jestli se změna vyplatila.
Kde GraphQL šetří síť a kde přidělává práci GraphQL přesouvá skládání dat na server. Klient pošle dotaz, dostane přesně ta pole, která potřebuje, a jedním requestem vyřeší i vnořené vztahy. To je výhoda na pomalých mobilních sítích a u obrazovek, které kombinují data z mnoha entit. Zároveň ale vzniká nová vrstva: resolver, schéma a ochrana proti příliš hlubokým dotazům. Bez omezení hloubky a počtu uzlů se z jednoho dotazu stane neplánovaný join přes celou databázi. Chyba, kterou dělá mnoho týmů, je pustit GraphQL do produkce bez limitu komplexity a bez sledování pomalých dotazů.
První praktický krok: zjisti, jestli prostředí pozná aktivní interpret. Otevři terminál, zadej python --version a pak totéž v integrovaném terminálu editoru. Často se čísla liší, protože editor sahá po systémovém Pythonu, zatímco ty pracuješ v projektovém. Řešení je nastavit cestu k interpretu přímo v konfiguraci projektu, ne globálně. Tím se vyhneš nejčastější chybě začátečníků: nainstalovaný balíček se nenačte, protože patří jinému interpretu.
Statická analýza a formátování rozhodují o každodenní pohodě Druhé kritérium je podpora nástrojů, které kontrolují kód ještě před spuštěním. Hledej prostředí, které umí spustit kontrolu typů a hlásit chyby přímo v editoru, ne až v terminálu. Stejně důležité je automatické formátování při uložení. Nastav ho jednou a nech ho pracovat na pozadí. Pokud formátovač koliduje s dalším nástrojem, vznikají hádky o mezery a zbytečné rozdíly v gitu. Vyber jeden nástroj pro formátování a jeden pro kontrolu stylu, ne tři zároveň.