Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Mazovia
Szukaj
Szukaj
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
GraphQL dotazy zbytečně brzdí: chyba, kterou odhalí až provoz
Strona
Dyskusja
polski
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Strony specjalne
Informacje o tej stronie
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
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.<br><br>Zásadní je i směr svitu. Pásky mířící přímo do očí vypadají na fotce efektně, ale při čtení nebo vstávání oslňují. Namiřte je mírně ke zdi nebo k zemi a použijte difuzní profil. Ten rozptýlí body do spojitého pruhu a odstraní i tmavé mezery mezi jednotlivými diodami. Bez profilu se každá dioda zobrazí jako samostatná tečka, což u záclony vynikne dvojnásob.<br><br>Malý pokoj pro dítě není problém, který se dá vyřešit jednou návštěvou nábytkářství. Je to série rozhodnutí, z nichž každé ovlivní, kolik místa skutečně zůstane na hraní, učení i spaní. Nejdřív změřte pokoj přesně – včetně výšky stropu, šířky dveří a pozice radiátorů a zásuvek. Pak si na papír napište, co dítě doopravdy potřebuje denně: postel, místo na oblečení, pracovní plochu a úložiště na hračky. Všechno ostatní je volitelné a dá se to řešit později.<br><br>Většina týmů začne GraphQL dotazy řešit ve chvíli, kdy aplikace začne zamrzat nebo faktura za výpočetní výkon naroste. Do té doby se dotazy píší intuitivně: co potřebuji, to si vyžádám. Problém je, že GraphQL neposílá jeden požadavek, ale často desítky resolverů, které se navzájem volají. Než začnete cokoli optimalizovat, změřte reálné chování. Bez dat o tom, který resolver tráví časem a kolikrát se volá, skončíte u přepisování dotazů, které nebyly problémem.<br><br>Hmotnostní limit je další věc, kterou lidé přehlížejí. Výrobce uvádí maximální zatížení pro každé lůžko zvlášť a často i pro celou konstrukci. Teenageři rostou a při hře na posteli snadno limity překročí. Vysvětlete jim, že skákání na lůžku, houpání na zábradlí a věšení se na horní palandě patří k nejčastějším příčinám převržení. Stejně rizikové je používání postele jako žebříku pro dosažení na polici nebo při hraní her.<br><br>Zvolte jednu dominantní barvu a dvě podpůrné. Dominantní patří na velké plochy – stěnu, pohovku, závěsy. Podpůrné se objevují v menším množství: polštáře, váza, rám obrazu, lampa. Pokud chcete klid, držte se odstínů ve stejné teplotě, tedy buď všechny teplé, nebo všechny studené. Míchání teplé béžové se studenou šedou bez prostředníka vypadá jako omyl, ne jako záměr. Prostředníkem může být dřevo, které obě teploty spojí.<br><br>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.<br><br>U osvětlení ověřte, zda LED pásky nejsou jen ztlumené nebo vypnuté v režimu, který si postel pamatuje po posledním použití. Zkuste světlo zapnout samostatným tlačítkem, ne přes scénu, a projeďte celý rozsah jasu. Pokud se pásek rozsvítí jen částečně nebo bliká, jde spíš o problém napájení pásku nebo o uvolněný spoj mezi páskem a konektorem, ne o ovladač.<br><br>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í.<br><br>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.<br><br>U mutací se vyplácí vracet jen to, co klient skutečně potřebuje. Často se stává, že mutace vrací celý objekt včetně vnořených vazeb, přičemž frontend využije jediné pole. Zbytečně to prodlužuje transakci a zvyšuje riziko zámku v databázi. Stejně tak se vyhněte tomu, aby se v jednom dotazu míchaly čtení a zápisy bez jasného důvodu.
Opis zmian:
Wszelki wkład na Mazovia może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Mazovia:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Przełącz ograniczenie szerokości strony