<?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=AlisaFielding6</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=AlisaFielding6"/>
	<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Spezial:Beitr%C3%A4ge/AlisaFielding6"/>
	<updated>2026-10-13T21:05:50Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Testy_reducer%C5%AF_a_thunk%C5%AF_zvl%C3%A1dnete_i_bez_b%C4%9B%C5%BE%C3%ADc%C3%ADho_prohl%C3%AD%C5%BEe%C4%8De&amp;diff=401261</id>
		<title>Testy reducerů a thunků zvládnete i bez běžícího prohlížeče</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Testy_reducer%C5%AF_a_thunk%C5%AF_zvl%C3%A1dnete_i_bez_b%C4%9B%C5%BE%C3%ADc%C3%ADho_prohl%C3%AD%C5%BEe%C4%8De&amp;diff=401261"/>
		<updated>2026-10-01T18:54:35Z</updated>

		<summary type="html">&lt;p&gt;AlisaFielding6: Die Seite wurde neu angelegt: „Prvním kritériem je zpětná vazba. Jazyk, ve kterém uvidíte výsledek své práce během několika minut, vás udrží u učení. Skriptovací jazyky spouštěné přímo v prohlížeči nebo v terminálu jsou pro začátek vhodnější než jazyky, které vyžadují kompilaci a složité nastavení prostředí. Pokud trávíte první hodiny konfigurací nástrojů místo psaním kódu, něco je špatně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr mějte pravidla krátká a…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prvním kritériem je zpětná vazba. Jazyk, ve kterém uvidíte výsledek své práce během několika minut, vás udrží u učení. Skriptovací jazyky spouštěné přímo v prohlížeči nebo v terminálu jsou pro začátek vhodnější než jazyky, které vyžadují kompilaci a složité nastavení prostředí. Pokud trávíte první hodiny konfigurací nástrojů místo psaním kódu, něco je špatně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr mějte pravidla krátká a vynutitelná. Napište je do souboru v repozitáři, ať jsou po ruce. Automatizujte, co jde: testy, kontrolu stylu, ochranu větví. Lidské dohady nahraďte jasnými pravidly a tým přestane řešit proces a začne řešit práci.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U async akcí se vyplatí testovat tři scénáře: úspěch, chybu a okamžik před dokončením. U úspěchu ověřte, že se nejdřív odešle akce o zahájení a pak akce s daty. U chyby zkontrolujte, že se odešle akce s chybou a že se nezavolá úspěšná větev. U zpožděné odpovědi ověřte, že se stav nemění, dokud promise nedoběhne. Nepoužívejte pevné časovače typu setTimeout v testech, pokud to jde; místo toho použijte promise a čekejte na jeho vyřešení.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Délka funkcí je druhý nejčastější problém. Funkce, která má přes třicet řádků, obvykle dělá víc věcí. Rozdělte ji podle toho, co se v ní děje: načtení dat, transformace, uložení. Každá část by měla jít otestovat samostatně. Vyhněte se vnořeným podmínkám do hloubky. Místo if (a) if (b) if (c) { … } použijte tzv. guard clauses: na začátku funkce ošetřete neplatné stavy a vraťte se. Tím se sníží počet úrovní a kód se čte shora dolů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Čtvrté pravidlo: konflikty řešte okamžitě a lokálně. Jakmile se objeví konflikt při sloučení, nenechávejte ho na později. Otevřete soubor, pochopte, co se změnilo v obou větvích, a rozhodněte se vědomě. Nikdy neklikejte na automatické přijetí všech změn z jedné strany. Typická chyba je slepé přijetí vlastní verze, čímž se ztratí práce kolegy. Po vyřešení konfliktu spusťte testy. Konflikt může být vyřešen syntakticky správně, ale logicky špatně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základní test vypadá tak, že zavoláte reducer s výchozím stavem a akcí a porovnáte výsledek s očekávaným objektem. Nepište testy tak, že jen zkontrolujete, že se stav změnil. Zkontrolujte konkrétní pole, jejich hodnoty a to, že ostatní části stavu zůstaly nedotčené. Častá chyba je sdílený výchozí stav mezi testy: pokud ho reducer mutuje, jeden test ovlivní druhý. Vždy vytvářejte čistou kopii stavu před každým testem, ideálně pomocí tovární funkce.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Komentáře pište jen tam, kde vysvětlují proč, ne co. Kód, který říká, co dělá, je čitelný sám. Pokud musíte vysvětlovat, co funkce dělá, přejmenujte ji. Pokud vysvětlujete, proč je tam okrajová podmínka, komentář má smysl. Také se vyhněte magickým číslům a řetězcům. Místo if (stav === 3) použijte pojmenovanou konstantu STAV_DOKONČENO. A místo http://example.com/api použijte konfigurační proměnnou. Když se hodnota změní, upravíte ji na jednom místě.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejčastější past je testování thunků přes skutečný store. Store vytváří vedlejší efekty, drží stav mezi testy a nutí vás řešit middleware. Pro izolovaný test stačí obyčejná funkce dispatch, která volání ukládá do pole. Další chyba je zapomenutý return u thunku. Pokud thunk nevrací promise, test skončí dřív, než async akce doběhne, a vy dostanete falešně zelený výsledek. Vždy vracejte promise a v testu na něj čekejte.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Až si vyberete, držte se jednoho jazyka alespoň tři měsíce. Pište malé programy, které něco dělají: převedou jednotky, spočítají průměr, přečtou soubor. Až narazíte na zeď, neberte to jako znamení, že jste vybrali špatně. Berte to jako součást učení. Teprve po zvládnutí základů má smysl přidat druhý jazyk. Do té doby je nejlepší investicí vytrvalost, ne hledání dokonalé volby.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Reducery jsou čisté funkce. To je jejich největší výhoda při testování: na vstupu dostanou stav a akci, na výstupu vrátí nový stav. Nepotřebujete k tomu žádné integrační prostředí, server ani prohlížeč. Stačí testovací runner, který umí spouštět JavaScript, a knihovna pro aserce. Pokud reducer zapisuje do globálního stavu, sahá na Date.now() nebo na Math.random(), přestává být čistý a testy začnou být křehké. Takové závislosti vytáhněte do parametrů akce nebo je obalte vlastním modulem, který v testu nahradíte.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Čistý kód v JavaScriptu není o estetice, ale o tom, jak rychle dokážete najít chybu a jak snadno někdo jiný pochopí, co jste mysleli. Začněte tím, že budete pojmenovávat věci podle toho, co dělají, ne jak vypadají. Funkce spočtiDaň je lepší než vypocet2. Proměnná aktivníUživatelé je lepší než data. Pokud název potřebuje komentář, je název špatný. Platí to i pro booleany: jePřihlášen, máOprávnění, platíKarta. Vyhněte se zkratkám, které za tři měsíce nepochopíte.&lt;/div&gt;</summary>
		<author><name>AlisaFielding6</name></author>
	</entry>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:AlisaFielding6&amp;diff=401260</id>
		<title>Benutzer:AlisaFielding6</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:AlisaFielding6&amp;diff=401260"/>
		<updated>2026-10-01T18:54:32Z</updated>

		<summary type="html">&lt;p&gt;AlisaFielding6: Die Seite wurde neu angelegt: „Autor blogu praktickým bydlením se zabývá denně. Píšu o tom, jak zvládnout domácnost bez stresu. Nejraději hledat cesty, jak si usnadnit život.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu praktickým bydlením se zabývá denně. Píšu o tom, jak zvládnout domácnost bez stresu. Nejraději hledat cesty, jak si usnadnit život.&lt;/div&gt;</summary>
		<author><name>AlisaFielding6</name></author>
	</entry>
</feed>