<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>http://wiki.pannier-schulungen.de/index.php?action=history&amp;feed=atom&amp;title=Kdy_m%C3%A1_smysl_zvolit_NoSQL_m%C3%ADsto_klasick%C3%A9_datab%C3%A1ze</id>
		<title>Kdy má smysl zvolit NoSQL místo klasické databáze - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.pannier-schulungen.de/index.php?action=history&amp;feed=atom&amp;title=Kdy_m%C3%A1_smysl_zvolit_NoSQL_m%C3%ADsto_klasick%C3%A9_datab%C3%A1ze"/>
		<link rel="alternate" type="text/html" href="http://wiki.pannier-schulungen.de/index.php?title=Kdy_m%C3%A1_smysl_zvolit_NoSQL_m%C3%ADsto_klasick%C3%A9_datab%C3%A1ze&amp;action=history"/>
		<updated>2026-08-22T07:17:36Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in MeinWiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://wiki.pannier-schulungen.de/index.php?title=Kdy_m%C3%A1_smysl_zvolit_NoSQL_m%C3%ADsto_klasick%C3%A9_datab%C3%A1ze&amp;diff=119438&amp;oldid=prev</id>
		<title>BritneyCavill8 am 21. August 2026 um 21:19 Uhr</title>
		<link rel="alternate" type="text/html" href="http://wiki.pannier-schulungen.de/index.php?title=Kdy_m%C3%A1_smysl_zvolit_NoSQL_m%C3%ADsto_klasick%C3%A9_datab%C3%A1ze&amp;diff=119438&amp;oldid=prev"/>
				<updated>2026-08-21T21:19:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 21. August 2026, 21:19 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Automatizované testy vám ušetří čas při opakované regresi, ale nejsou všelékem&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Nejčastější chybou je testovat pouze „šťastnou cestu&amp;quot; – tedy situace&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kdy vše proběhne bez chyby. Automatizaci nastavte tak&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aby pokryla i chybové stavy: prázdná pole, špatný formát e-mailu, ztráta připojení k internetu, nedostatek úložiště&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pro &lt;/del&gt;psaní &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;testů používejte nástroje, které umožňují běh &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;více zařízeních najednou&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a testy rozdělte podle priority&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Nízkoprioritní testy (např&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;vizuální kontrola) nemusí běžet při každém commitu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale stačí je spustit před vydáním nové verze&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pro praktické cvičení si vytvořte jednoduchou aplikaci&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;která zobrazuje seznam úkolů&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Použijte SwiftUI a @State pro správu dat&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Přidejte možnost přidávat a mazat položky&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Tím &lt;/del&gt;si &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;osvojíte základní principy: vazbu dat &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;rozhraní&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;předávání dat mezi obrazovkami &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;práci s uživatelským vstupem&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Během vývoje narazíte &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;to&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že je nutné řešit i správu souborů &lt;/del&gt;nebo &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ukládání dat&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pro začátek stačí použít UserDefaults &lt;/del&gt;pro &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jednoduché nastavení&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale &lt;/del&gt;pro &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;složitější data sáhněte po Core Data nebo SwiftData, které jsou součástí systému&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pro ruční testování si vytvořte kontrolní seznam&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;který budete procházet při každém vydání&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Do seznamu zahrňte: spuštění aplikace za studena (po restartu zařízení)&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;přepnutí &lt;/del&gt;do &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pozadí &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zpět&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;otočení obrazovky&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;příchozí notifikaci&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;změnu jasu a hlasitosti&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zapnutí &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;vypnutí Bluetooth &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wi-Fi&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Tento seznam nemusí být dlouhý&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale musí být konzistentní &lt;/del&gt;– &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jinak na něco zapomenete&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Při testování si dělejte poznámky přímo do zařízení, a to včetně času, kdy se &lt;/del&gt;chyba &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;vyskytla, a kroku&lt;/del&gt;, který &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ji vyvolal&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Bez těchto informací je hlášení chyby k ničemu&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Při psaní kódu se vyhnete častému problému, pokud budete dbát na správné použití volitelných typů&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Swift &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;striktní na nil hodnoty&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a pokud se pokusíte pracovat s volitelnou proměnnou bez rozbalení&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kompilátor vám to nedovolí&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Mnozí začátečníci používají k vynucenému rozbalení vykřičník (!), což je riskantní&lt;/del&gt;. Pokud &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hodnota není přítomná&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aplikace spadne&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Místo toho používejte if let nebo guard let pro bezpečné rozbalení. Tento návyk vám ušetří hodiny ladění&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Nakonec nezapomeňte &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;beta testování se skutečnými uživateli&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dejte aplikaci vybrané skupině lidí, kteří ji budou používat v běžném provozu – v metru&lt;/del&gt;, na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;horách&lt;/del&gt;, na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pomalém připojení&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Jejich zpětná vazba odhalí problémy&lt;/del&gt;, které vám &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;uniknou, protože vy znáte aplikaci příliš dobře&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Teprve poté&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;co projdete fyzickými testy, automatizací i beta verzí, můžete aplikaci vydat&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pamatujte&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že testování nekončí vydáním – sledujte chybové hlášení v produkční verzi &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;na základě dat z reálného provozu upravte své testovací scénáře&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Co testovat nejdřív: Priorita podle rizika Nejdůležitější je otestovat to&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;co může způsobit největší škodu – tedy platby&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;přihlašování a ochranu osobních údajů&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;U plateb vždy vyzkoušejte zrušení platby&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;opakované stisknutí tlačítka &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;přerušení transakce příchozím hovorem. U přihlášení ověřte&lt;/del&gt;, co &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;se stane&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;když uživatel zadá špatné heslo pětkrát&lt;/del&gt;, a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jak &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aplikace chová po obnovení hesla&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Nezapomeňte &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;testování s vypnutým internetem – aplikace by měla zobrazit jasnou hlášku a umožnit opakování, ne „ztichnout&amp;quot; nebo spadnout&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Typická chyba&lt;/del&gt;: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;vývojář ošetří chybu sítě, ale uživatel ji nevidí, protože aplikace zůstane na bílé obrazovce&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Testování mobilních aplikací &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;od testování webových stránek liší v několika zásadních ohledech. Kromě funkčnosti musíte ověřit chování při přerušení (příchozí hovor&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;notifikace)&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;různé velikosti displejů&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;verze operačního systému, a také spotřebu baterie či paměti&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Než začnete, definujte si testovací scénáře podle reálného používání &lt;/del&gt;– &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ne podle toho&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;co vás napadne. Zaměřte &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;na hlavní uživatelské cesty&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jako je registrace&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;přihlášení&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nákup nebo synchronizace dat&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;U každého scénáře si zapište očekávaný výsledek&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;abyste ho mohli porovnat se skutečným chováním&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dalším častým problémem je ignorování mezer a odstupů&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Návrháři používají systém mezer (často v násobcích základní jednotky&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;třeba 4px)&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aby vytvořili rytmus &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;oddělili logické celky&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Když mezery nahradíte univerzálním paddingem nebo marginem podle &lt;/del&gt;toho, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;co zrovna vypadá dobře&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;rozbijete celou vizuální rovnováhu&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Naučte se číst designové specifikace – v nich najdete přesné hodnoty odsazení&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;velikostí a barev&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pokud taková specifikace chybí&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zeptejte se designéra&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jaký systém používá. Je to rychlejší, než hádat a poté předělávat polovinu komponent&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Mezi časté chyby začátečníků patří posílání obrovských pull requestů&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;které mění mnoho věcí najednou&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Takové změny se obtížně kontrolují &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;často končí zamítnutím&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Rozdělte práci na menší&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;logicky ucelené části – každý pull request by měl řešit jeden problém&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dále se vyhněte tomu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;abyste &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;snažili vyřešit všechno najednou&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nebo abyste měnili věci, které s daným problémem nesouvisí&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;A pozor také na to, abyste nezasahovali do cizích pull requestů bez vyzvání – počkejte, až vás maintainer požádá o spolupráci&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;Dodržujte formátování&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;I když to zní banálně&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jednotné odsazování (2 mezery)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;středníky a konzistentní používání uvozovek výrazně zlepšují přehlednost&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Vyhněte se &lt;/ins&gt;psaní &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;více příkazů na jeden řádek. Každý příkaz &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vlastní řádek. Pokud máte složitou podmínku&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;uložte ji do pojmenované proměnné: „const isUserEligible = user.age &amp;gt;18 &amp;amp;&amp;amp; user. If you have any type of inquiries relating to where and how you can use [https://mdma.noosworx.com/index.php?title=Testov%C3%A1n%C3%AD_API_v_Postmanu:_praktick%C3%BD_pr%C5%AFvodce_pro_za%C4%8D%C3%A1te%C4%8Dn%C3%ADky_i_pokro%C4%8Dil%C3%A9 Https://mdma&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;noosworx&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Com/]&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;you can [https://search.Yahoo.com/search?p=contact contact] us at our own website. verified;&amp;quot;. Tím se podmínka stane samodokumentující&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Dalším osvědčeným postupem je rozdělení práce na menší&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;logické celky&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Každá feature větev by měla řešit jeden konkrétní úkol, ať už jde o opravu bugu, přidání funkce nebo refaktoring&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Do větve nepatří nesouvisející změny, byť by byly sebemenší&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pokud potřebujete upravit něco, co s úkolem nesouvisí, vytvořte &lt;/ins&gt;si na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;to samostatnou větev. Tím zajistíte&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;že každý commit je snadno revertovatelný &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;historie větve zůstává čitelná&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pozor &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;globální stav a vedlejší efekty. Funkce&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;které mění globální proměnné &lt;/ins&gt;nebo &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;přijaté objekty, jsou zdrojem chyb&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Snažte se psát čisté funkce: vždy vracejí stejný výsledek &lt;/ins&gt;pro &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stejné vstupy a nemění nic venku. Pokud potřebujete změnit objekt&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vytvořte jeho kopii a vraťte novou. Tím se snižuje riziko neočekávaných interakcí. Toto je zásadní &lt;/ins&gt;pro &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;testování a ladění&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pravidelně refaktorujte. Když vidíte duplicitní kód, nevkládejte ho znovu&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ale vytáhněte do sdílené funkce&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pokud máte funkci s pěti parametry, zvažte&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zda nedává smysl seskupit je &lt;/ins&gt;do &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;objektu. Nesnažte se napsat dokonalý kód na první pokus. Napište funkční verzi &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;poté ji postupně vylepšujte. Čistý kód není cíl, ale neustálý proces. Důležité je&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;abyste při každé změně zanechali místo o něco čistší&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;než jste ho našli.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;REST je vhodný&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;když potřebujete jednoduchou&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stabilní &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dobře kešovatelnou strukturu. Pokud vaše data mají jasnou hierarchii &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;klienti konzumují celé zdroje (např&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;článek, uživatel, objednávka)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;REST vás nezradí. Klíčové je správně navrhnout endpointy &lt;/ins&gt;– &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;každý zdroj by měl mít vlastní URL a používat standardní HTTP metody&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Typická &lt;/ins&gt;chyba&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;? Vytvoření endpointu typu /getAllData&lt;/ins&gt;, který &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vrací vše najednou&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;To zabíjí výkon a znemožňuje efektivní kešování na serveru i u klienta&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Typickou chybou je komentování samozřejmostí&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Komentář „// přičte 1 k proměnné i&amp;quot; vedle řádku „i++&amp;quot; &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zbytečný šum. Vysvětlujte spíše „proč&amp;quot;&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ne „co&amp;quot;. Například: „// Používáme zpětné procházení&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;protože data přicházejí obráceně&amp;quot;&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Dobrý kód by měl být čitelný bez komentářů&lt;/ins&gt;. Pokud &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;musíte vysvětlovat logiku&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;rozdělte ji do menších funkcí s výstižnými názvy&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Snažte se, aby se komentáře staly výjimkou, ne pravidlem&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nezapomínejte ani &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pravidelnou komunikaci s týmem&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pokud víte&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;že někdo jiný pracuje &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;podobném souboru nebo stejné funkcionalitě&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;domluvte se předem &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pořadí slučování&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Velmi užitečné je také používat takzvané „feature flagy&amp;quot;&lt;/ins&gt;, které vám &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;umožní [https://citiesofthedead.net/index&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;php/Rovnov%C3%A1ha_mezi_jednotkov%C3%BDmi_a_integra%C4%8Dn%C3%ADmi_testy_p%C5%99i_r%C5%AFstu_projektu rekonstrukce koupelny krok za krokem]členit nedokončenou práci do hlavní větve bez toho&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;aby ovlivnila produkční kód&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Tím se vyhnete dlouhým větvím&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;které žijí mimo hlavní vývoj &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jejichž sloučení je pak noční můrou&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Kdy přejít na GraphQL a co si pohlídat GraphQL se vyplatí, když máte více klientů (mobilní aplikace&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;web&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;třetí strany) s odlišnými požadavky na data&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Místo mnoha endpointů definujete schéma&lt;/ins&gt;, a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;klient si specifikuje&lt;/ins&gt;, co &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;přesně potřebuje. To šetří přenos dat i počet requestů. Typický use case: dashboard&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kde každá část zobrazuje jiné agregace. Začněte s nástrojem jako Apollo nebo Relay&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ale nejdřív si rozvrhněte typy &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vztahy – špatné schéma &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;později těžko mění&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pozor také &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tzv&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;N+1 problém&lt;/ins&gt;: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;bez optimalizace (např. DataLoader) může jeden dotaz vygenerovat desítky SQL dotazů&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Když &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;řekne NoSQL&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mnoho vývojářů si představí buď zázračné řešení všech problémů&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nebo naopak něco&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;čemu je lepší se vyhnout&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pravda je ale jinde &lt;/ins&gt;– &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;NoSQL je nástroj&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;který &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;hodí pro specifické případy&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a pokud ho použijete tam&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kde se nehodí&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;snadno si způsobíte víc škody než užitku&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Tento text vám pomůže zorientovat se v tom&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;co NoSQL skutečně je a kdy po něm sáhnout&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nejdřív si ujasněme, co NoSQL znamená&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jde o rodinu databází&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;které se odklánějí od klasického relačního modelu s tabulkami&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;řádky &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;striktním schématem&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Místo &lt;/ins&gt;toho &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;používají různé datové modely – dokumenty&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;klíče a hodnoty&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sloupce nebo grafy&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Typickým rysem je horizontální škálování&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tedy přidávání dalších serverů místo posilování jednoho výkonného stroje&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;To znamená&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;že NoSQL databáze umějí obsloužit obrovské objemy dat&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ale často za cenu slabší konzistence nebo složitějších dotazů&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Závěrem: NoSQL není náhrada za SQL&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ale doplněk&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nejlepší praxí je kombinovat obojí – pro některé části aplikace použít relační databázi &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pro jiné dokumentovou či sloupcovou&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Rozhodování by mělo vždy vycházet z konkrétních požadavků&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ne z trendů&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Začněte malým pilotním projektem, změřte&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jak &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;systém chová&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a teprve pak rozšiřujte&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Tím se vyhnete zbytečným nákladům a nekvalitnímu návrhu&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BritneyCavill8</name></author>	</entry>

	<entry>
		<id>http://wiki.pannier-schulungen.de/index.php?title=Kdy_m%C3%A1_smysl_zvolit_NoSQL_m%C3%ADsto_klasick%C3%A9_datab%C3%A1ze&amp;diff=114590&amp;oldid=prev</id>
		<title>LateshaPlowman5: Die Seite wurde neu angelegt: „Automatizované testy vám ušetří čas při opakované regresi, ale nejsou všelékem. Nejčastější chybou je testovat pouze „šťastnou cestu&quot; – ted…“</title>
		<link rel="alternate" type="text/html" href="http://wiki.pannier-schulungen.de/index.php?title=Kdy_m%C3%A1_smysl_zvolit_NoSQL_m%C3%ADsto_klasick%C3%A9_datab%C3%A1ze&amp;diff=114590&amp;oldid=prev"/>
				<updated>2026-08-21T18:05:38Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Automatizované testy vám ušetří čas při opakované regresi, ale nejsou všelékem. Nejčastější chybou je testovat pouze „šťastnou cestu&amp;quot; – ted…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Automatizované testy vám ušetří čas při opakované regresi, ale nejsou všelékem. Nejčastější chybou je testovat pouze „šťastnou cestu&amp;quot; – tedy situace, kdy vše proběhne bez chyby. Automatizaci nastavte tak, aby pokryla i chybové stavy: prázdná pole, špatný formát e-mailu, ztráta připojení k internetu, nedostatek úložiště. Pro psaní testů používejte nástroje, které umožňují běh na více zařízeních najednou, a testy rozdělte podle priority. Nízkoprioritní testy (např. vizuální kontrola) nemusí běžet při každém commitu, ale stačí je spustit před vydáním nové verze.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pro praktické cvičení si vytvořte jednoduchou aplikaci, která zobrazuje seznam úkolů. Použijte SwiftUI a @State pro správu dat. Přidejte možnost přidávat a mazat položky. Tím si osvojíte základní principy: vazbu dat na rozhraní, předávání dat mezi obrazovkami a práci s uživatelským vstupem. Během vývoje narazíte na to, že je nutné řešit i správu souborů nebo ukládání dat. Pro začátek stačí použít UserDefaults pro jednoduché nastavení, ale pro složitější data sáhněte po Core Data nebo SwiftData, které jsou součástí systému.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pro ruční testování si vytvořte kontrolní seznam, který budete procházet při každém vydání. Do seznamu zahrňte: spuštění aplikace za studena (po restartu zařízení), přepnutí do pozadí a zpět, otočení obrazovky, příchozí notifikaci, změnu jasu a hlasitosti, zapnutí a vypnutí Bluetooth a Wi-Fi. Tento seznam nemusí být dlouhý, ale musí být konzistentní – jinak na něco zapomenete. Při testování si dělejte poznámky přímo do zařízení, a to včetně času, kdy se chyba vyskytla, a kroku, který ji vyvolal. Bez těchto informací je hlášení chyby k ničemu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při psaní kódu se vyhnete častému problému, pokud budete dbát na správné použití volitelných typů. Swift je striktní na nil hodnoty, a pokud se pokusíte pracovat s volitelnou proměnnou bez rozbalení, kompilátor vám to nedovolí. Mnozí začátečníci používají k vynucenému rozbalení vykřičník (!), což je riskantní. Pokud hodnota není přítomná, aplikace spadne. Místo toho používejte if let nebo guard let pro bezpečné rozbalení. Tento návyk vám ušetří hodiny ladění.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec nezapomeňte na beta testování se skutečnými uživateli. Dejte aplikaci vybrané skupině lidí, kteří ji budou používat v běžném provozu – v metru, na horách, na pomalém připojení. Jejich zpětná vazba odhalí problémy, které vám uniknou, protože vy znáte aplikaci příliš dobře. Teprve poté, co projdete fyzickými testy, automatizací i beta verzí, můžete aplikaci vydat. Pamatujte, že testování nekončí vydáním – sledujte chybové hlášení v produkční verzi a na základě dat z reálného provozu upravte své testovací scénáře.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Co testovat nejdřív: Priorita podle rizika Nejdůležitější je otestovat to, co může způsobit největší škodu – tedy platby, přihlašování a ochranu osobních údajů. U plateb vždy vyzkoušejte zrušení platby, opakované stisknutí tlačítka a přerušení transakce příchozím hovorem. U přihlášení ověřte, co se stane, když uživatel zadá špatné heslo pětkrát, a jak se aplikace chová po obnovení hesla. Nezapomeňte na testování s vypnutým internetem – aplikace by měla zobrazit jasnou hlášku a umožnit opakování, ne „ztichnout&amp;quot; nebo spadnout. Typická chyba: vývojář ošetří chybu sítě, ale uživatel ji nevidí, protože aplikace zůstane na bílé obrazovce.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testování mobilních aplikací se od testování webových stránek liší v několika zásadních ohledech. Kromě funkčnosti musíte ověřit chování při přerušení (příchozí hovor, notifikace), různé velikosti displejů, verze operačního systému, a také spotřebu baterie či paměti. Než začnete, definujte si testovací scénáře podle reálného používání – ne podle toho, co vás napadne. Zaměřte se na hlavní uživatelské cesty, jako je registrace, přihlášení, nákup nebo synchronizace dat. U každého scénáře si zapište očekávaný výsledek, abyste ho mohli porovnat se skutečným chováním.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Dalším častým problémem je ignorování mezer a odstupů. Návrháři používají systém mezer (často v násobcích základní jednotky, třeba 4px), aby vytvořili rytmus a oddělili logické celky. Když mezery nahradíte univerzálním paddingem nebo marginem podle toho, co zrovna vypadá dobře, rozbijete celou vizuální rovnováhu. Naučte se číst designové specifikace – v nich najdete přesné hodnoty odsazení, velikostí a barev. Pokud taková specifikace chybí, zeptejte se designéra, jaký systém používá. Je to rychlejší, než hádat a poté předělávat polovinu komponent.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Mezi časté chyby začátečníků patří posílání obrovských pull requestů, které mění mnoho věcí najednou. Takové změny se obtížně kontrolují a často končí zamítnutím. Rozdělte práci na menší, logicky ucelené části – každý pull request by měl řešit jeden problém. Dále se vyhněte tomu, abyste se snažili vyřešit všechno najednou, nebo abyste měnili věci, které s daným problémem nesouvisí. A pozor také na to, abyste nezasahovali do cizích pull requestů bez vyzvání – počkejte, až vás maintainer požádá o spolupráci.&lt;/div&gt;</summary>
		<author><name>LateshaPlowman5</name></author>	</entry>

	</feed>