Čím se řídit, když klient tlačí na termín dodání?
Rozložení dnes řešte pomocí flexboxu a gridu. Oba nástroje zvládají zarovnání i roztažení obsahu bez pevných šířek. Nepoužívejte plovoucí prvky pro celkovou stavbu stránky, na to už dávno nejsou potřeba. Box model je další kámen úrazu. Šířka prvku se standardně počítá včetně paddingu a borderu až po nastavení box-sizing. Nastavte jej globálně na border-box pro všechny prvky. Ušetříte si překvapení, kdy se sloupec nevejde vedle druhého.
U pohovoru nepředstírej zkušenosti, které nemáš. Mnohem lépe působí, když řekneš, že praxi nemáš, ale tento konkrétní projekt jsi otestoval a našel tyto chyby. Připrav si odpovědi na otázky typu: jak bys otestoval přihlášení, co uděláš, když vývojář tvrdí, že chyba není reprodukovatelná, jak rozhodneš, kterou chybu hlásit první. Pokud umíš odpovědět věcně, tvá chybějící praxe přestane být hlavní téma.
REST použijte, když je datový model stabilní a klientů je mnoho. Například veřejné API pro čtení článků, seznamů nebo statických zdrojů. Výhoda je v jednoduchosti: každý endpoint má jasný kontrakt, snadno se verzuje v URL a odpovědi se dají efektivně na CDN. Typická chyba je nutit REST do hlubokých vnořených vztahů – vzniká N+1 dotazů, klient volá deset endpointů a výsledek stejně slepuje ručně.
Nejčastější chyba je spoléhat se na výchozí styly prohlížeče. Ty se liší, takže stejná stránka může vypadat jinak v každém programu. Řešením je nastavit základní vlastnosti na rekonstrukce koupelny krok za krokemčátku: velikost písma, rodinu písma, okraje a způsob počítání šířky prvků. Box model je klíčový pojem. Šířka prvku se ve výchozím stavu počítá jinak, než většina lidí čeká, a proto se prvky rozlézají mimo rodiče. Přepnutím způsobu výpočtu se tento problém vyřeší jednou provždy.
Pokrytí přestává být užitečné ve chvíli, kdy začneš psát testy kvůli číslu, ne kvůli riziku. Typický projev: testy volají funkci, zkontrolují, že nespadla, ale netvrdí nic o výsledku. Další častý případ je ignorování větví, které nelze snadno zasáhnout, takže se místo jejich otestování obalí podmínkou nebo se z kódu odstraní, aby číslo vypadalo lépe. Pokud se v týmu mluví o pokrytí častěji než o chybách, které testy odhalily, je metrika na špatné cestě.
Typická chyba je komunikovat odhad jako jedno číslo. Mnohem poctivější je říct rozsah: „S velkou pravděpodobností to bude v tomto týdnu, nejpozději do konce příštího." Rozsah dává klientovi prostor plánovat a vám prostor dýchat. Nikdy ale nerozšiřujte rozsah jen proto, abyste měli klid. Když se vejdete do spodní hranice, řekněte to. Důvěra se buduje hlavně na tom, že se trefujete do toho, co jste sami slíbili.
Pro mutace a transakce zůstává REST často jednodušší. Vytvoření objednávky, platba nebo operace, která musí proběhnout celá, se v REST mapuje na jeden endpoint s jasným výsledkem. GraphQL mutace zvládne totéž, ale přidává vrstvu schématu a je snazší udělat chybu v atomičnosti. Pokud potřebujete idempotentní operace, REST s PUT nebo DELETE je přirozenější.
Sémantické tagy místo divů Místo desítek divů používejte tagy, které nesou význam: header, nav, main, section, article, footer. Vyhledávače i čtečky obrazovky z nich lépe pochopí, co je na stránce důležité. Divy si nechte na čistě vizuální obaly. Další častá chyba je vnořování tagů do sebe bez rozmyslu. Nadpis první úrovně patří na stránku jednou, další nadpisy tvoří logickou hierarchii. Když ji přeskočíte, snižujete přístupnost i srozumitelnost obsahu.
První věc je správná kostra dokumentu. Každý soubor začíná deklarací typu dokumentu a párovým tagem html s jazykem stránky. Uvnitř hlavičky patří znaková sada, titulek a meta tag rady pro rekonstrukci responzivitu. Tělo pak obsahuje viditelný obsah. Typická chyba: chybějící meta tag viewport. Na mobilu se pak stránka zobrazí jako zmenšená plocha a uživatel musí zoomovat. Nastavte jej vždy: šířka zařízení, počáteční měřítko jedna.
U GraphQL počítejte s tím, že cachování je složitější. REST odpověď na konkrétní URL se cachuje automaticky, GraphQL dotaz je obvykle POST na jediný endpoint. Řešením je persistované dotazy s GET a krátkodobá cache na úrovni polí, ale chce to plán. Také sledujte, jak řešíte chyby: GraphQL vrací 200 i při částečném selhání, takže klientský kód musí kontrolovat pole errors, ne jen HTTP status.
Kde GraphQL řeší problém, který REST vytvořil GraphQL nasaďte, když klienti potřebují různé pohledy na stejná data. Mobil chce tři pole, web dvacet a administrace padesát. Jeden dotaz nahradí několik REST volání a odstraní over-fetching i under-fetching. Dobře se hodí pro dashboardy, feedy a aplikace s rychle se měnícími UI požadavky. Pozor na dvě věci: bez omezení hloubky dotazu a bez persistovaných dotazů si kdokoli může vyžádat drahý join přes celý graf. A bez správného resolveru snadno skončíte s N+1 problémem uvnitř jednoho pole.