Praktický trik pro malé pokoje: použijte lenošku, která má stejnou výšku sedu jako pohovka. Když je postavíte do pravého úhlu, vytvoří souvislou sedací plochu a místnost působí větší. Lenošku s vysokým opěradlem naopak nestavte před okno, kde by blokovala světlo. Pokud potřebujete obě sedačky často rozkládat na spaní, nechte mezi nimi vždy volný prostor na rozložení, jinak se v noci budete motat mezi nimi.
Nejčastější chybou je spoléhat pouze na barvu oleje. Olej může být černý už po pár stech kilometrech, protože čistí motor, a přitom ještě funguje. Naopak světlý olej může být naředěný vodou nebo palivem. Proto vždy berte v potaz kombinaci všech signálů a způsobu jízdy. Další chybou je výměna oleje bez výměny filtru. Starý filtr zadrží nečistoty a nový olej okamžitě znečistí. Stejně tak někteří řidiči dolévají jiný typ oleje, což může způsobit reakci aditiv a tvorbu usazenin.
Batchování a dataloadery místo N+1 Typický scénář: načtete seznam objednávek a u každé chcete jméno zákazníka. Bez opatření vznikne jeden dotaz na objednávky a pak stovky samostatných dotazů na zákazníky. Tomu se říká N+1 a v GraphQL je to zabiják. Řešením je batchování – posbírejte všechny identifikátory z jednoho cyklu a pošlete je do databáze jedním dotazem. V JavaScriptu k tomu slouží dataloadery, v jiných jazycích se dají napsat vlastní. Klíčové je seskupit požadavky ve stejném cyklu událostí, ne je vyřizovat okamžitě.
Pozor na přestupy. Dva samostatné lety od různých dopravců znamenají, že při zpoždění prvního letu nenesete nárok na náhradní spojení. Pokud přestupujete, držte se jedné rezervace nebo si nechte mezi lety alespoň tři hodiny. U penzionu v menším městě navíc počítejte s tím, že poslední autobus nebo vlak jede brzy. Přílet pozdě večer pak znamená dražší taxi, nebo nutnost domluvit si odvoz předem.
Co dělat v prvních minutá
Většina týmů dnes používá GraphQL jako jednotné rozhraní nad několika službami. Jenže právě tahle pohodlnost vede k dotazům, které vypadají elegantně, ale na produkci vytíží databázi i síť. Problém nebývá v samotném GraphQL, ale v tom, jak se překládá do dotazů na backend. Každé pole v selektoru znamená práci, kterou někdo musí vykonat.
Zvažte i to, jak pohovku do podkroví vůbec dostanete. Úzké schodiště, zlom ve stěně a vikýř dokážou zablokovat i kus, který by se do místnosti jinak vešel. Rozkládací pohovka se proto vybírá podle toho, zda ji lze přenést v rozloženém stavu, nebo zda se do bytu dostane pouze po částech. U rohových sestav je lepší volit dvě menší části než jeden velký celek — snadněji se protáhnou dveřmi a lépe se přizpůsobí půdorysu.
Pro rok 2026 se vyplatí sledovat dvě věci: automatické generování dotazů na základě skutečného použití a nástroje pro analýzu provozu. Místo ručního ladění nechte systém, ať sleduje, které dotazy jsou pomalé, a sám navrhne indexy nebo úpravy resolverů. GraphQL není magie – je to jen vrstva. Když pod ní bude nepořádek, žádná optimalizace na úrovni dotazů to nespraví.
Druhá věc je cachování. GraphQL má tu nevýhodu, že každý dotaz je jiný, takže klasická HTTP cache moc nefunguje. Použijte cache na úrovni resolverů nebo perzistentní cache dotazů. Pokud klient posílá pořád stejný dotaz, můžete ho uložit pod hashem a příště vrátit hotovou odpověď. Pozor ale na osobní data – cache musí být rozdělená podle uživatele, jinak dojde k úniku informací.
První pravidlo zní: nikdy nedovolte klientovi sestavit dotaz bez omezení hloubky a šířky. Hloubka tři až pět úrovní je pro většinu aplikací dost. Přidejte na server validaci, která dotaz odmítne, pokud přesáhne limit. Stejně tak omezte počet položek v seznamech – místo stovek záznamů vracejte stránkované výsledky s kurzorem. Nekonečné seznamy bez stránkování jsou nejčastější příčina pomalých odpovědí.
Častá chyba je také ignorování nákladů na jednotlivá pole. Některá pole jsou drahá – třeba agregace přes celou tabulku. Zaveďte systém, který každému poli přiřadí váhu a celkový dotaz ohodnotí. Dotazy nad limit buď odmítněte, nebo je zařaďte do pomalejší fronty. Tím zabráníte tomu, aby jeden klient zablokoval celý systém. Zároveň měřte, která pole se používají a která jsou zbytečná. Často zjistíte, že polovina schématu je mrtvá.