GraphQL dotazy zbytečně brzdí: chyba, kterou odhalí až provoz
Co keramice škodí víc než špatné čištěn
Na závěr: optimalizace není jednorázový úkol. Dotazy se mění s tím, jak se mění obrazovky aplikace. Zaveďte pravidelnou kontrolu pomalých dotazů a sledujte, jak se chovají po každém vydání. Bez měření a limitů se vrátíte tam, kde jste začali, jen s větší důvěrou v to, že je vše v pořádku.
Začněte tím, že si večer připravíte cestu, kterou ráno projdete. Položte oblečení tak, abyste na něj dosáhli vsedě, ale ne tak, abyste ho museli hledat. Sklenici vody dejte na noční stolek těsně před spaním, ne až ráno. Telefon nebo budík umístěte dál od postele, ale ne tak daleko, abyste cestou v tmě narazili do nábytku. Tři kroky, které zvládnete poslepu, jsou lepší než deset kroků, při kterých se budete muset rozsvítit a tím se probudit příliš prudce.
Projděte všechny šrouby, matice a spojky a dotáhněte je. U dřevěných valend se spoje časem uvolňují, proto je kontrolujte alespoň dvakrát ročně a po každém stěhování. U kovových rámů sledujte, zda se neohýbají nohy nebo zda nepraskají svary. Zároveň ověřte, že zábradlí horního lůžka má dostatečnou výšku a že mezera mezi madlem a matrací není tak velká, aby jí teenager mohl propadnout. Do blízkosti postele neumisťujte těžké předměty, které by při pádu někoho zranily.
Rozcvička před lezením není formalita, kterou lze odbýt pár hmity na hrazdě. Špatně zvolená příprava může naopak snížit výkon nebo přispět ke zranění. Klíčové je rozhodnout, co přesně potřebujete před první cestou na stěně: zda uvolnit ztuhlé svaly, nebo nastartovat nervosvalový systém pro explozivní výkony. Většina lezců podceňuje druhý bod a statickému protahování věnuje příliš mnoho času.
Co nejčastěji kazí spaní ve dvou v jednom poko
Prvním krokem je zapnout trasování na úrovni polí. Potřebujete vidět, kolik volání databáze vzniklo z jednoho dotazu a jak dlouho každé trvalo. Často se ukáže, že jeden dotaz spustí stovky samostatných selectů, protože resolver načítá data pro každou položku seznamu zvlášť. To je klasické N+1 a v GraphQL je pravidlem, ne výjimkou. Řešením není omezit dotaz, ale sloučit načítání do dávek podle klíčů, které se v seznamu opakují.
Hloubka dotazu a limity, které většina vynechá GraphQL dovoluje klientovi sestavit libovolně hluboký dotaz. Pokud neomezíte hloubku a složitost, jeden klient může poslat dotaz, který projde stovkami uzlů a zablokuje backend. Zaveďte tvrdý limit hloubky a počtu polí na dotaz a vracejte chybu dřív, než se cokoli začne načítat. Stejně důležité je omezit aliasy a fragmenty, které útočník nebo nepozorný vývojář může zneužít k obejití limitu. Limit nastavte podle skutečných potřeb frontendu, ne podle toho, co všechno by šlo teoreticky vyžádat.
Druhou častou chybou je ignorování cache na úrovni resolverů. Data, která se nemění každou sekundu, se dají ukládat krátkodobě do paměti a sdílet mezi požadavky. Pozor ale na kontext: cache musí být vázaná na oprávnění uživatele, jinak snadno vrátíte data, na která klient nemá nárok. Oddělte veřejná data od uživatelských a pro ta druhá cachujte opatrně nebo vůbec.
Typická chyba je snažit se vstát hned, jakmile zazvoní budík, a přitom mít zhasnuto. Tělo v tu chvíli ještě není připravené na pohyb a mozek dostává protichůdné signály. Druhá častá chyba je naopak příliš dlouhé ležení se zapnutým světlem – světlo sice svítí, ale vy ho ignorujete a ospalost se vrací. Rozhodující je proto krátký, ale jasný přechod: posadit se, zapnout tlumené světlo, chvíli počkat, vstát.
Vyvarujte se toho, abyste světlo používali jako trest nebo jako důkaz vlastní disciplíny. Cílem není vstát za každou cenu, ale vstát bez zbytečného odporu. Když se ráno nedaří, zkontrolujte, jestli jste večer neusínali příliš pozdě nebo jestli vás nebudí jiný zdroj hluku. Někdy stačí posunout budík o čtvrt hodiny a připravit si světlo blíž k posteli. Malé úpravy prostředí dělají větší rozdíl než opakované předsevzetí, že tentokrát už to vyjde.
Pomáhá také připravit si světlo tak, aby se dalo zapnout bez hledání vypínače. Prodlužovací šňůra s vypínačem položená na dosah ruky nebo lampa s dotykovým ovládáním na nočním stolku udělají víc než drahé vybavení. Pokud máte v místnosti závěsy, které pouští ranní světlo, nechte je pootevřené. Přirozené světlo postupně sílí a tělo na něj reaguje lépe než na náhlý elektrický jas.
Kdy je nejlepší rozsvítit a kdy raději ne Ostré světlo hned po probuzení funguje, ale jen když ho používáte správně. Bílé světlo nad hlavou v prvních vteřinách často způsobí, že přivřete oči a znovu se stočíte do peřiny. Místo toho použijte slabší zdroj světla – lampu s teplým světlem, kterou zapnete, až když sedíte na okraji postele. Nechte oči, aby si na světlo zvykly dvě až tři minuty, než vstanete. Tím se vyhnete šoku, který vás pošle zpátky pod deku.