<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EdithAgostini9</id>
	<title>Rettungsdienst-Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EdithAgostini9"/>
	<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Spezial:Beitr%C3%A4ge/EdithAgostini9"/>
	<updated>2026-10-11T22:25:20Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=5_situac%C3%AD,_kdy_se_REST_API_a_GraphQL_chovaj%C3%AD_odli%C5%A1n%C4%9B&amp;diff=455602</id>
		<title>5 situací, kdy se REST API a GraphQL chovají odlišně</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=5_situac%C3%AD,_kdy_se_REST_API_a_GraphQL_chovaj%C3%AD_odli%C5%A1n%C4%9B&amp;diff=455602"/>
		<updated>2026-10-11T15:03:01Z</updated>

		<summary type="html">&lt;p&gt;EdithAgostini9: Die Seite wurde neu angelegt: „Optimalizace není jednorázový úkon. Dotazy, které byly rychlé, mohou po nárůstu dat zpomalit. Proto se vyplatí mít přehled o pomalých dotazech a čas od času zkontrolovat jejich plány. Zaměřte se na ty, které běží často, i když jsou na první pohled rychlé – jejich kumulativní dopad bývá větší než u jednoho dlouhého dotazu. Změna jedné podmínky nebo přidání jednoho vhodného indexu pak často znamená rozdíl mezi do…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Optimalizace není jednorázový úkon. Dotazy, které byly rychlé, mohou po nárůstu dat zpomalit. Proto se vyplatí mít přehled o pomalých dotazech a čas od času zkontrolovat jejich plány. Zaměřte se na ty, které běží často, i když jsou na první pohled rychlé – jejich kumulativní dopad bývá větší než u jednoho dlouhého dotazu. Změna jedné podmínky nebo přidání jednoho vhodného indexu pak často znamená rozdíl mezi dotazem, který zatěžuje celý systém, a dotazem, který si vezme jen to, co potřebuje.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U GraphQL si dejte pozor na N+1 problém. Každé pole může spustit samostatný dotaz do databáze. Řešením je batchování a cache, ale to není automatické. REST tomuto problému často uniká tím, že jeden endpoint vrátí data z jedné nebo několika málo tabulek. Další častá chyba je ignorování hloubky dotazu. GraphQL umožňuje rekurzivní zanořování a útočník může poslat dotaz, který zbytečně zatíží server. Nastavte limit hloubky a složitosti dotazu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Opakovaný požadavek je v REST API běžná věc. Klient odešle požadavek, nedostane včas odpověď, a tak ho pošle znovu. Pokud server nerozliší, že jde o tentýž záměr, může vytvořit dvě objednávky, dva uživatele nebo dvakrát odečíst z účtu. Idempotence znamená, že provedení stejné operace vícekrát má stejný výsledek jako provedení jednou. U GET, PUT a DELETE je to přirozené, u POST ne. Právě tam vzniká většina problémů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další častá chyba je testování přes reálný plánovač. Ten spouští úlohy v intervalech, které se do testu nevejdou. Místo čekání na tik hodin použijte možnost úlohu spustit ručně nebo plánovač v testovacím režimu obejít. Ověřujete logiku zpracování, ne to, že knihovna pro plánování funguje. Stejně tak nechte stranou síťová volání – nahraďte je zástupnými objekty, jinak budou testy pomalé a nestabilní.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec se rozhodujte podle týmu a ekosystému. Pokud máte tým zvyklý na REST, knihovny a monitoring, přechod na GraphQL znamená učení a nové nástroje. Pokud stavíte klienta, který potřebuje rychle měnit pohledy na data, GraphQL může ušetřit spoustu práce. Často dává smysl kombinace: REST pro jednoduché a stabilní operace, GraphQL pro složité čtení. Vyberte podle konkrétních dotazů, ne podle toho, co je zrovna moderní.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Index není všelék. Pomáhá, když filtrujete podle sloupce s vysokou selektivitou, tedy když podmínka vybere malou část tabulky. Naopak index na sloupci, kde platí podmínka pro většinu řádků, práci spíš zpomalí, protože databáze musí číst index i samotná data. Pozor také na to, jak jsou sloupce v indexu seřazené. U složeného indexu platí, že první sloupec musí být v dotazu použit, jinak se zbytek indexu často neuplatní. Pokud často vyhledáváte podle dvou sloupců, nestačí dva samostatné indexy – složený index může být výrazně efektivnější.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začít přispívat do open source projektu bývá nejtěžší na psychice, ne na technice. Většina lidí stráví týdny čtením kódu a hledáním „dokonalého&amp;quot; úkolu, místo aby udělali malou změnu. Praxe je přitom mnohem přímočařejší: vyberte projekt, který sami používáte, a podívejte se, co vás na něm štve. Možná chybí čárka v dokumentaci, možná spadne test na okrajovém případu. Přesně tam začněte.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Malá změna, jasný popis, trpělivost První příspěvek držte co nejmenší. Oprava překlepu v komentáři nebo doplnění chybějícího testu má větší šanci projít než rozsáhlý refaktoring. Do popisu změny napište, co a proč měníte, a připojte odkaz na související hlášení o chybě, pokud existuje. Vyhněte se mixování několika nesouvisejících úprav v jednom návrhu – to je nejčastější důvod, proč správci změnu vrátí k přepracování. Formátování, mezery a styl odsazení držte shodné s okolním kódem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Po přijetí změny se nebojte ptát, co dál. Většina projektů vede seznam úkolů vhodných pro nováčky. Přispívání je dovednost jako každá jiná – první krok je nejtěžší, druhý už jde snáz. Vytrvejte u jednoho projektu alespoň několik měsíců. Naučíte se jeho architekturu, získáte důvěru správců a příště už budete řešit zajímavější problémy než překlepy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typické chyby, které potkáte: příliš velký první návrh, chybějící testy, nerespektování konvencí projektu a ignorování automatických kontrol. Tyto kontroly často spouštějí testy a analýzu stylu ještě před lidskou recenzí. Když selžou, opravte je a nahrajte novou verzi. Nikdy nemažte komentáře recenzentů ani historii větve účelovými přepisy, pokud vás k tomu projekt výslovně nevyzve.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Akce navrhujte jako malé, konkrétní události, ne jako univerzální příkazy. Místo jedné akce UPDATE s obřím payloadem použijte itemAdded, itemRemoved a itemUpdated. Reducer pak zůstane čitelný a testovatelný. U složitějšího stavu se osvědčil vzor slice: jeden soubor obsahuje počáteční stav, akce i reducer pro jednu doménu. Nesnažte se ale vytvořit jeden slice pro celou aplikaci, jinak se vrátíte k monolitickému reduceru, kterému nikdo nerozumí.&lt;/div&gt;</summary>
		<author><name>EdithAgostini9</name></author>
	</entry>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:EdithAgostini9&amp;diff=455600</id>
		<title>Benutzer:EdithAgostini9</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:EdithAgostini9&amp;diff=455600"/>
		<updated>2026-10-11T15:02:58Z</updated>

		<summary type="html">&lt;p&gt;EdithAgostini9: Die Seite wurde neu angelegt: „Autor blogu dílnou i obývákem sází na osvědčené tipy. Píšu o tom, jak si poradit v malém bytě. Nejvíc mě baví ukazovat chytrá řešení, která zvládne každý.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu dílnou i obývákem sází na osvědčené tipy. Píšu o tom, jak si poradit v malém bytě. Nejvíc mě baví ukazovat chytrá řešení, která zvládne každý.&lt;/div&gt;</summary>
		<author><name>EdithAgostini9</name></author>
	</entry>
</feed>