<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://bloomwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=StuartMacy</id>
	<title>BloomWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://bloomwiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=StuartMacy"/>
	<link rel="alternate" type="text/html" href="http://bloomwiki.org/index.php/Special:Contributions/StuartMacy"/>
	<updated>2026-10-25T11:55:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>http://bloomwiki.org/index.php?title=N_1_dotaz%C5%AF_v_GraphQL,_kter%C3%BD_zbyte%C4%8Dn%C4%9B_sr%C3%A1%C5%BE%C3%AD_odezvu&amp;diff=548966</id>
		<title>N 1 dotazů v GraphQL, který zbytečně sráží odezvu</title>
		<link rel="alternate" type="text/html" href="http://bloomwiki.org/index.php?title=N_1_dotaz%C5%AF_v_GraphQL,_kter%C3%BD_zbyte%C4%8Dn%C4%9B_sr%C3%A1%C5%BE%C3%AD_odezvu&amp;diff=548966"/>
		<updated>2026-10-19T10:38:10Z</updated>

		<summary type="html">&lt;p&gt;StuartMacy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jak poznat, že botičky sedí a kdy je sund&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Keramická rovnátka vypadají nenápadně, ale jejich údržba je náročnější než u kovových. Keramika je poréznější a náchylnější k zachycení pigmentů z jídla a nápojů. Zatímco kovové drátky a zámečky stačí jen mechanicky čistit, keramika vyžaduje důslednost a správnou techniku. Základem je pochopit, že průhledný materiál časem mění barvu, pokud ho nechráníte před barvivy a zbytkami potravy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Hloubka a složitost místo slepé důvěry v klienta Druhá past je neomezená hloubka dotazu. Klient může poslat rekurzivní strukturu, která projde validací, ale databázi položí. Zavedeno má být měření složitosti podle počtu polí a násobení u seznamů, ne jen podle hloubky. Konkrétní limit nastav podle reálného provozu: jeden typ dotazu snese tisíce, jiný jen desítky. Překročení nesmí skončit obecnou chybou, ale srozumitelným odmítnutím, aby klient věděl, že má dotaz zjednodušit.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typická chyba je snažit se zahřát aktivitou. „Rozhýbej se, bude ti teplo&amp;quot; platí jen do chvíle, než se objeví třes a zpomalené reakce. Další běžná chyba je rozdělení skupiny: jeden jde pro pomoc, ostatní zůstanou bez zkušeného vedení. Pokud je stav středně vážný, celá skupina se přesune do bezpečí společně a pomalejším tempem. Nikdy nenechávejte postiženého samotného, ani na pár minut. A nepodceňujte ani situaci, kdy se člověk sám cítí dobře – právě tehdy dělá největší chyby.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pozor na to, že cachování na úrovni HTTP tady často nefunguje. Dotazy chodí na stejnou adresu, ale s jiným tělem, takže se klíč cache tvoří špatně. Místo plošného cachování používej perzistentní dotazy: klient pošle hash, server podle něj najde uložený dokument. Tím se zmenší provoz, zjednoduší validace a odstraní se celá třída útoků založených na skládání dotazů za běhu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je změřit skutečný prostor. Vezměte metr a změřte šířku dveřního křídla i to, kam až se dveře otevřou. Často se zapomíná na radiátor pod oknem nebo na vypínač, který musí zůstat přístupný. Pokud dveře ústí do rohu, kde je i okno, vzniká takzvaný mrtvý klín. Ten se nevyplatí zaplňovat, protože by znemožnil větrání i průchod. Místo toho sem umístěte něco nízkého a mobilního, například nízký úložný box na kolečkách, který se dá kdykoli odsunout.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nezapomeň na to, co se děje uvnitř resolveru. I když je dávkování správné, můžeš ztratit čas na serializaci velkých objektů nebo na zbytečném načítání polí, která klient nechce. Vracej jen to, co je v selekci, a těžké výpočty odkládej mimo hlavní cestu. Typická chyba je načíst celý objekt i s vnořenými vazbami, protože se to hodilo pro jiný případ. GraphQL odměňuje přesnost; každé pole navíc se násobí počtem položek.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Většina onemocnění ryb nevzniká z ničeho nic. Jsou důsledkem dlouhodobě zanedbávané rovnováhy v nádrži. Když se voda zkazí, ryby oslabí a patogeny, které běžně přežívají v akváriu, dostanou šanci. Prevence proto není o lécích, ale o každodenní rutině. Těchto pět návyků zabere denně jen pár minut a dokáže zabránit většině problémů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejčastější příčina pomalého GraphQL není databáze ani síť, ale to, že resolver volá data pro každou položku seznamu zvlášť. Tomuto vzorci se říká N+1 a vzniká nenápadně: rodičovský resolver vrátí dvacet záznamů a každý potomek si pak vyžádá vlastní dotaz. V RESTu se tomu člověk často vyhne ručním spojením, v GraphQL to ale vypadá přirozeně, protože pole se resolvují samostatně. Řešení není v optimalizaci SQL, ale ve sloučení požadavků ještě před tím, než se dostanou do datové vrstvy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Než začneš cokoli optimalizovat, změř to. Zapni trasování po jednotlivých resolverech a sleduj, kolik dotazů vzniká na jeden požadavek. Teprve potom sáhni po dávkování, limitech a perzistentních dotazech. Bez měření se snadno stane, že zrychlíš část, která není problém, a ta skutečná úzká místa zůstanou skrytá až do chvíle, kdy přijde provoz.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základem je dávkování. Místo jednoho dotazu na položku posbírej během jednoho taktu všechny klíče, které potomci potřebují, a načti je jedním dotazem s klauzulí IN. Když to uděláš ručně, brzy se ti rozpadne logika mezi resolvery. Proto se vyplatí zavést malý zavaděč, který po dobu jednoho tiku sbírá klíče a pak je odešle společně. Nespoléhej na to, že si to každý resolver ohlídá sám; jedno zapomenuté místo vrátí problém zpět a najdeš ho až v produkci pod zátěží.&lt;/div&gt;</summary>
		<author><name>StuartMacy</name></author>
	</entry>
	<entry>
		<id>http://bloomwiki.org/index.php?title=User:StuartMacy&amp;diff=548954</id>
		<title>User:StuartMacy</title>
		<link rel="alternate" type="text/html" href="http://bloomwiki.org/index.php?title=User:StuartMacy&amp;diff=548954"/>
		<updated>2026-10-19T10:37:59Z</updated>

		<summary type="html">&lt;p&gt;StuartMacy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu světem interiérů žije už dlouho. Píšu o tom, jak zvládnout domácnost bez stresu. Nejvíc mě baví hledat cesty, jak si usnadnit život.&lt;/div&gt;</summary>
		<author><name>StuartMacy</name></author>
	</entry>
	<entry>
		<id>http://bloomwiki.org/index.php?title=User:StuartMacy&amp;diff=548247</id>
		<title>User:StuartMacy</title>
		<link rel="alternate" type="text/html" href="http://bloomwiki.org/index.php?title=User:StuartMacy&amp;diff=548247"/>
		<updated>2026-10-19T09:20:17Z</updated>

		<summary type="html">&lt;p&gt;StuartMacy: Created page with &amp;quot;Autor blogu dílnou i obývákem se zabývá denně. Sdílím zde, jak si poradit v malém bytě. Nejvíc mě baví hledat cesty, jak si usnadnit život.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu dílnou i obývákem se zabývá denně. Sdílím zde, jak si poradit v malém bytě. Nejvíc mě baví hledat cesty, jak si usnadnit život.&lt;/div&gt;</summary>
		<author><name>StuartMacy</name></author>
	</entry>
</feed>