Příliš mnoho kovu u výrazného vzoru, který zabije celý efekt
Art deco šperky mají silnou geometrii, lesk a výrazné linie. Když je položíte na oblečení s velkým vzorem, vzniká boj o pozornost. Většina lidí to vyřeší tak, že si vezme ještě výraznější náhrdelník nebo náušnice, a výsledek je přeplácaný. Cílem není šperk schovat, ale nechat ho vyniknout. Proto je potřeba nejdřív zhodnotit, jak velký a barevně kontrastní vzor na oblečení skutečně je.
Poslední pravidlo se týká nákupu bez vyzkoušení. Objednávat vůni nebo odstín jen podle popisu je sázka do loterie. Pokud není možné získat vzorek, raději zvolte menší balení nebo produkt, který znáte. U dražších položek se vyplatí počkat na příležitost, kdy je možné si je vyzkoušet na kůži, a nekupovat impulzivně podle momentálního dojmu. Kosmetika i parfém mají sloužit každý den, ne stát jako dekorace.
Persistentní dotazy a místo, kde se nejvíc plýtvá Persistentní dotazy (APQ nebo plná verze) snižují objem přenášených dat a zároveň otevírají cestu k efektivnímu cacheování na serveru. Zásadní chyba je kombinovat je s dynamickými proměnnými, které mění strukturu dotazu, ne jen hodnoty. Cache pak nefunguje a každý požadavek jde znovu přes parser i plánovač. Držte oddělené dotazy pro různé tvary odpovědí a proměnné používejte pouze tam, kde skutečně mění jen vstupní hodnoty.
Doba měření se nastavuje podle toho, co hledáte. Rychlé orientační měření trvá několik sekund a odhalí hlavní složky. Pro stopové prvky je potřeba minuty. Během měření nikdo nesmí do prostoru zasahovat, protože pohyb vzorku nebo ruky v blízkosti detektoru způsobí chybu. Pozor také na vlhkost a prach v okolí přístroje. Pokud měříte s helium, zkontrolujte těsnění komory, jinak výsledky kolísají.
Nejčastější chyba je snaha udělat z balkonu obývací pokoj. Malý prostor nesnese křeslo, stolek a ještě gril. Vyberte si jednu funkci: buď sušení prádla, nebo posezení, nebo pěstování. Když zůstanete u jedné, zbude místo na pohyb. Druhá častá chyba je upevňování čehokoli do panelu bez rozmyslu. Do nosné stěny se nevrtejte bez schválení, do zábradlí zase nevěšte těžké věci — může prasknout. Třetí chyba: uzavření balkonu fólií nebo sklem bez odtoku vzduchu. Vznikne vlhko, plíseň a v zimě promrzlé zdivo.
Strojové gravírování frézou vytváří hlubší a ostřejší linie, které jsou vhodné pro delší texty, monogramy nebo složité motivy. Laser naopak vypaluje povrch a vytváří kontrastní, tmavší stopu. Laser je rychlý a zvládne i drobné detaily, ale u některých kovů vzniká oxidovaná vrstva, která se časem může měnit. U tenkých řetízků a malých přívěsků hrozí, že laser materiál provrtá nebo zdeformuje. Vždy se ptejte, zda bude gravírování provedeno na holém kovu, nebo až po finálním leštění. Pokud je šperk osazený drahokamem, musí být kámen zakrytý a chlazený, jinak praskne.
Druhá častá past je ignorování hloubky a složitosti dotazu. Klient může poslat rekurzivní fragment, který projde validací, ale na serveru vygeneruje tisíce volání. Nasaďte limit na maximální hloubku dotazu a spočítejte si předem složitost podle počtu polí a očekávané kardinality. Pokud klient požaduje více, odpovězte chybou, ne pomalou odpovědí. Stejně tak zakázněte neregulované aliasy a cyklické fragmenty, které jen obcházejí limity.
Monitoring je třetí noha, na které optimalizace stojí. Sledujte latenci podle jednotlivých resolverů, ne jen podle celého dotazu. Užitečné je logovat počet databázových dotazů na jeden GraphQL požadavek a porovnávat ho s očekávaným počtem. Jakmile hodnota vyskočí, máte podezřelého. Bez tohoto měření se ladění zvrhne v hádání a změny často zhorší to, co měly zlepšit.
Na úrovni schématu se vyplatí omezit pole, která vrací velké kolekce bez povinného filtru. Pokud klient může zavolat seznam všech záznamů bez omezení, dříve nebo později to udělá. Vynuťte povinný argument pro stránkování nebo filtr a nastavte maximální velikost stránky. Zároveň zvažte, zda některá pole neposkytovat jako samostatný typ s vlastním resolverem, který má jasně dané meze.
Většina pomalých GraphQL dotazů nevzniká kvůli databázi, ale kvůli tomu, jak resolver vrací data. Typická chyba: resolver pro pole v seznamu spustí samostatný dotaz pro každou položku. U deseti položek to projde, u tisíce se server udusí. Řešením je batchování přes DataLoader nebo ekvivalentní mechanismus, který sloučí jednotlivé požadavky do jednoho dotazu na databázi. Bez tohoto kroku nepomůže ani horizontální škálování, protože latence roste lineárně s počtem záznamů.
Poslední pravidlo: neoptimalizujte předem. Nejprve změřte, kde čas skutečně mizí, pak teprve sáhněte po batchování, persistentních dotazech nebo omezení hloubky. Většina zrychlení přijde z odstranění zbytečných dotazů, ne z výměny databáze nebo přidání dalšího serveru.