<?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=Jak_Nastavit_CI%2FCD_Pipeline_S_GitHub_Actions</id>
		<title>Jak Nastavit CI/CD Pipeline S GitHub Actions - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.pannier-schulungen.de/index.php?action=history&amp;feed=atom&amp;title=Jak_Nastavit_CI%2FCD_Pipeline_S_GitHub_Actions"/>
		<link rel="alternate" type="text/html" href="http://wiki.pannier-schulungen.de/index.php?title=Jak_Nastavit_CI/CD_Pipeline_S_GitHub_Actions&amp;action=history"/>
		<updated>2026-08-22T12:25:19Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in MeinWiki</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://wiki.pannier-schulungen.de/index.php?title=Jak_Nastavit_CI/CD_Pipeline_S_GitHub_Actions&amp;diff=119080&amp;oldid=prev</id>
		<title>Kandi9443641632 am 21. August 2026 um 20:35 Uhr</title>
		<link rel="alternate" type="text/html" href="http://wiki.pannier-schulungen.de/index.php?title=Jak_Nastavit_CI/CD_Pipeline_S_GitHub_Actions&amp;diff=119080&amp;oldid=prev"/>
				<updated>2026-08-21T20:35:05Z</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, 20:35 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;Klíčové je rozlišovat mezi „co&amp;quot; &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;„proč&amp;quot;. Diff vám ukáže&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;co se změnilo&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale ne proč. Proto v popisu vždy vysvětlete důvod. Například místo „Změněna barva tlačítka&amp;quot; napište „Změněna barva tlačítka na tmavší&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aby byl lépe viditelný &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;světlém pozadí&amp;quot;&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Taková informace šetří čas při revizi kódu &lt;/del&gt;i &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;při budoucí údržbě&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pokud je změna složitější, rozdělte ji &lt;/del&gt;do &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;více commitů&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ať každý dělá jednu věc&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;To usnadní reverz &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hledání příčiny chyb&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Kdy NoSQL nepoužívat &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jaké chyby &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;vyvarovat Naopak&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pokud potřebujete provádět složité transakce&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kde &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nutné zajistit&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aby &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;buď provedly všechny operace, nebo žádná, zůstaňte u relační databáze&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Typickým příkladem &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;bankovní převod – odeslání peněz a připsání &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;účet musí proběhnout atomicky&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Většina NoSQL systémů podporuje transakce jen omezeně&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nebo jen na úrovni jednoho záznamu. Dalším případem&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kdy &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;NoSQL nehodí&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jsou dotazy nad více tabulkami&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;které vyžadují časté spojování (JOIN). I když některé NoSQL databáze tento problém řeší&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;výkonnostně &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;vývojově je to složitější než v SQL&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Při práci &lt;/del&gt;s &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;NoSQL se vyvarujte dvěma častým chybám. První je použití NoSQL jen proto, že je „moderní&amp;quot;, bez jasného důvodu. Druhým problémem je nedostatečné navržení datového modelu. V NoSQL se &lt;/del&gt;často &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;doporučuje ukládat data tak&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jak &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;budete číst (denormalizace)&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;To znamená&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že pokud potřebujete zobrazit objednávku s položkami&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;uložíte &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;společně v jednom dokumentu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;místo abyste je rozdělovali &lt;/del&gt;do &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;více tabulek&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;To vede k výkonnostnímu zisku&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale musíte pečlivě zvážit&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jak se data mění&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;vyhnuli nekonzistencím&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Typová inference a praktické tipy TypeScript se snaží uhodnout typy automaticky&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;což znamená, že nemusíte psát anotace všude&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pokud ale deklarujete proměnnou bez inicializace&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dostanete typ any, který vypne veškerou kontrolu&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;To &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;častý zdroj chyb&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Místo any používejte unknown &lt;/del&gt;nebo &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;konkrétní typ, případně zúžený typ pomocí typeof či instanceof&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Další častou pastí &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;práce s poli &lt;/del&gt;– &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pokud máte pole, které může obsahovat různé typy, definujte to explicitně jako union&lt;/del&gt;, aby &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nedošlo k neočekávanému chování při volání metod&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Další technikou&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kterou oceníte při ladění složitějších aplikací&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;je použití logpointů&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Logpoint je hybrid mezi console&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;log a breakpointem – místo zastavení běhu programu pouze vypíše hodnotu do konzole. To &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ideální &lt;/del&gt;pro &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;situace&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kdy potřebujete sledovat hodnoty ve smyčce, ale nechcete při každé iteraci ručně pokračovat. Nastavíte ho stejně jako breakpoint&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale v menu zvolíte možnost Add logpoint &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;napíšete výraz, který se má vypsat. Tím získáte rychlý přehled bez zbytečného přerušování běhu&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Typickou chybou je psát zprávy v minulém čase. „Fixed bug&amp;quot; nebo „Přidali jsme funkci&amp;quot; je sice běžné&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale lépe &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;čte rozkazovací způsob: „Oprav chybu v přihlašování&amp;quot; nebo „Přidej validaci e-mailu&amp;quot;&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Tento styl připomíná příkaz &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;přesně říká, co změna dělá&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Druhým častým prohřeškem je příliš dlouhé shrnutí&lt;/del&gt;, které se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nevejde do rozhraní &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;je oříznuto. Držte &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tedy stručnosti. A poslední zásada: pokud změna řeší více nesouvisejících věcí, rozdělte ji do více commitů. Jeden commit by měl představovat jednu logickou jednotku&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Když &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;řekne databáze&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;většina vývojářů si představí tabulky, řádky a SQL dotazy&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Relační databáze jsou osvědčeným standardem&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale ne pro každý projekt jsou tou nejlepší volbou&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;NoSQL databáze nabízí jiný způsob ukládání dat&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;který může být &lt;/del&gt;v &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;některých případech výrazně efektivnější&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Než se ale pustíte do jejich implementace&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;je důležité pochopit&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kdy dávají smysl &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kdy naopak přinesou více problémů než užitku&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Na závěr: TypeScript se nejlépe učí při práci na reálném projektu. &lt;/del&gt;Začněte &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tím&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že si do existujícího JavaScriptového &lt;/del&gt;projektu &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;přidáte konfigurační soubor a postupně přepnete soubory na &lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ts&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Sledujte &lt;/del&gt;chyby, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;které editor hlásí&lt;/del&gt;, a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;opravujte je&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Po pár týdnech zjistíte&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že píšete kód rychleji, protože se nemusíte spoléhat na paměť &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dokumentaci&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Chyby odhalíte dřív&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;než se dostanou k uživatelům, a to &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;největší přínos&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;který TypeScript nabízí&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Když procházíte historii projektu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;každá commit zpráva by měla odpovědět na dvě otázky&lt;/del&gt;: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;co se změnilo a proč&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Většina vývojářů ale píše zprávy jako „oprava bugu&amp;quot; nebo „úpravy&amp;quot;&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Takové popisy jsou k ničemu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;protože neříkají&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;co přesně &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dělo&lt;/del&gt;, a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hlavně proč. Bez kontextu se po pár měsících vracíte k hádankám a musíte ručně procházet diff&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;abyste zjistili, co se vlastně stalo&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Cílem není psát romány&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale dodat dostatek informací&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aby se kdokoli v historii rychle zorientoval&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;Kdy přidat integrační test &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kdy raději unit test Praktické vodítko: pokud test vyžaduje nastavení více než tří závislostí (databáze, HTTP klient&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;fronta)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zvažte&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zda by nešlo většinu logiky pokrýt unit testem a integrační test nechat jen &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;okrajové případy&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Typickou chybou je testovat každou metodu servisní vrstvy integračně, &lt;/ins&gt;i &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;když se v ní nachází čistá byznys logika&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Přesuňte tuto logiku &lt;/ins&gt;do &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;samostatné třídy&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kterou otestujete jednotkově&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Integrační test pak pouze ověří, že se třída správně propojuje s okolím – &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;takových testů stačí málo&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Na závěr: rovnováha není statický stav, ale průběžný proces. Při každé nové funkci si položte otázku, zda ji lze pokrýt unit testem s minimálním úsilím. Pokud ano, udělejte to. Integrační testy si šetřete na místa, kde dochází ke skutečné interakci mezi komponentami – &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;i tam &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;snažte o minimální počet scénářů. Pravidelná údržba testů&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jejich mazání a refaktorování&lt;/ins&gt;, je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stejně důležitá jako psaní nových. Jen tak udržíte testovací sadu rychlou, spolehlivou a užitečnou i v době&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kdy &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;codebase dál rozrůstá&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Častým problémem &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;také zapomínání &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;resetování stavu mezi požadavky&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pokud uživatel odešle formulář&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pak ho zruší a odešle znovu&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stará data &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;mohou mísit s novými. Proto si vždy definujte akci reset pro každý slice&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;která vrátí stav do výchozího bodu. Nebo&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pokud používáte thunky&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;můžete v rámci jednoho thunku nejprve dispatchnout reset &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;poté načítání. Tento návyk eliminuje spoustu chyb s duplicitními nebo zastaralými daty&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Práce &lt;/ins&gt;s &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;asynchronními akcemi v Reduxu &lt;/ins&gt;často &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vede k nepřehlednému stavu&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;který &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;obtížné testovat a rozšiřovat&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Největší chybou&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kterou vidím v kódu týmů&lt;/ins&gt;, je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;skladování všech dat&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stavů načítání a chyb &lt;/ins&gt;do &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jedné globální proměnné bez jasné struktury&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Výsledkem jsou pak komponenty, které řeší&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[https://Www.wikipedia.org/wiki/zda%20m%C3%A1 zda má] být tlačítko aktivní&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a zároveň zpracovávají odpověď ze serveru. Přitom stačí dodržet pár zásad&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;aby &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stav stal předvídatelným a údržba snesitelná&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pro nasazení (CD) vytvořte samostatný job&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;který závisí na úspěšném CI. Využijte secrets pro přihlašovací údaje – nikdy je neukládejte přímo do YAML souboru&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;V nastavení repozitáře najdete sekci Secrets&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kde uložíte tokeny nebo klíče&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;V workflow &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pak použijte jako $ secrets.NAZEV &lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Deploy na server může probíhat přes SSH, docker push &lt;/ins&gt;nebo &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nahrání artefaktů na hosting&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Důležité &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;také správně nastavit permissions &lt;/ins&gt;– &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;minimální oprávnění pro každý job&lt;/ins&gt;, aby &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;se předešlo bezpečnostním rizikům&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Poslední rada: nepodceňujte výběr selectoru. Pokud máte v komponentě přístup k celému stavu Reduxu&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;selektory by měly být co nejkonkrétnější – vracející jen to&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;co komponenta potřebuje&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Vyhnete se tím zbytečnému překreslování, když se změní jiná část stavu&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pro asynchronní data &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vhodné si připravit selektory, které vrací rovnou připravená data &lt;/ins&gt;pro &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zobrazení&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;třeba s výchozími hodnotami&lt;/ins&gt;, a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tím oddělíte logiku výběru od logiky zpracování&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Když backend dodá rozhraní bez pořádné dokumentace, frontend často tápá&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;doptává &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;na Slacku a píše si vlastní poznámky&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Výsledkem jsou zbytečné chyby, zpoždění &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;frustrace&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Přitom stačí dodržet pár zásad&lt;/ins&gt;, které &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;z dokumentace udělají nástroj, ne nutné zlo. Tento článek &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zaměřuje na praktické kroky, jak dokumentaci připravit tak, aby sloužila oběma stranám – &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;hlavně aby &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;v ní dalo rychle a spolehlivě hledat&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Častou chybou začátečníků je neúcta k procesu. Mnoho lidí rovnou vytvoří PR, aniž by &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;podívali&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jestli podobný úkol není už rozpracovaný&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Než začnete pracovat&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zkontrolujte si uzavřené i otevřené pull requesty&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Pokud si nejste jistí&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zeptejte se &lt;/ins&gt;v &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;diskusi pod issue&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Další past je neřešit zpětnou vazbu – když vám někdo připomínkuje, berte to jako příležitost&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ne jako útok. Odpovězte slušně&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;upravte kód &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;vysvětlete, co jste změnili&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jak vypadá kvalitní první příspěvek? &lt;/ins&gt;Začněte &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;něčím nenáročným&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;co nevyžaduje hluboké pochopení architektury &lt;/ins&gt;projektu. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Může to [https://Wideinfo&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;org/?s=b%C3%BDt%20oprava být oprava] překlepu v dokumentaci, doplnění komentáře, vylepšení formátování nebo drobná oprava &lt;/ins&gt;chyby &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;v kódu. Předtím&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;než cokoli uděláte&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;si vytvořte vlastní větev (branch) z hlavní větve repozitáře. Poté proveďte změny &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pošlete tzv. pull request (PR). [https://mdma.noosworx.com/index&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;php?title=Jak_spr%C3%A1vn%C4%9B_odhadnout_%C4%8Das_na_skryt%C3%A9_%C4%8Dinnosti_ve_v%C3%BDvoji osvětlení v obýváku] něm jasně popište&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;co jste změnili &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;proč&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nezapomeňte přidat i relevantní informace&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jako &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;číslo issue&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;které řešíte&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Základním krokem je rozdělit stav podle domén. Místo jednoho objektu asyncState s deseti klíči pro různé požadavky použijte samostatné slice pro každou logickou oblast, například user, products nebo notifications. V každém slice pak udržujte čistá data&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nikoli [https&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;//rikkiepedia&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nl/index&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;php?title=Prvn%C3%AD_kroky_s_API:_co_um%C4%9Bt&lt;/ins&gt;,&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;_ne%C5%BE_za%C4%8Dne%C5%A1_volat_ciz%C3%AD_slu%C5%BEby informace] o tom&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;že &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;něco děje. Pro kontrolu průběhu asynchronní operace je vhodné vytvořit malý pomocný stav – typicky status s hodnotami idle&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;loading, succeeded &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;failed&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;plus pole error pro chybové hlášky&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Tento vzor&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;inspirovaný doporučením z oficiální dokumentace Reduxu&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;je jednoduchý a snadno rozšiřitelný&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>Kandi9443641632</name></author>	</entry>

	<entry>
		<id>http://wiki.pannier-schulungen.de/index.php?title=Jak_Nastavit_CI/CD_Pipeline_S_GitHub_Actions&amp;diff=113747&amp;oldid=prev</id>
		<title>SidneyLabbe8080: Die Seite wurde neu angelegt: „Klíčové je rozlišovat mezi „co&quot; a „proč&quot;. Diff vám ukáže, co se změnilo, ale ne proč. Proto v popisu vždy vysvětlete důvod. Například místo…“</title>
		<link rel="alternate" type="text/html" href="http://wiki.pannier-schulungen.de/index.php?title=Jak_Nastavit_CI/CD_Pipeline_S_GitHub_Actions&amp;diff=113747&amp;oldid=prev"/>
				<updated>2026-08-21T17:36:26Z</updated>
		
		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Klíčové je rozlišovat mezi „co&amp;quot; a „proč&amp;quot;. Diff vám ukáže, co se změnilo, ale ne proč. Proto v popisu vždy vysvětlete důvod. Například místo…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Klíčové je rozlišovat mezi „co&amp;quot; a „proč&amp;quot;. Diff vám ukáže, co se změnilo, ale ne proč. Proto v popisu vždy vysvětlete důvod. Například místo „Změněna barva tlačítka&amp;quot; napište „Změněna barva tlačítka na tmavší, aby byl lépe viditelný na světlém pozadí&amp;quot;. Taková informace šetří čas při revizi kódu i při budoucí údržbě. Pokud je změna složitější, rozdělte ji do více commitů, ať každý dělá jednu věc. To usnadní reverz a hledání příčiny chyb.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kdy NoSQL nepoužívat a jaké chyby se vyvarovat Naopak, pokud potřebujete provádět složité transakce, kde je nutné zajistit, aby se buď provedly všechny operace, nebo žádná, zůstaňte u relační databáze. Typickým příkladem je bankovní převod – odeslání peněz a připsání na účet musí proběhnout atomicky. Většina NoSQL systémů podporuje transakce jen omezeně, nebo jen na úrovni jednoho záznamu. Dalším případem, kdy se NoSQL nehodí, jsou dotazy nad více tabulkami, které vyžadují časté spojování (JOIN). I když některé NoSQL databáze tento problém řeší, výkonnostně a vývojově je to složitější než v SQL.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při práci s NoSQL se vyvarujte dvěma častým chybám. První je použití NoSQL jen proto, že je „moderní&amp;quot;, bez jasného důvodu. Druhým problémem je nedostatečné navržení datového modelu. V NoSQL se často doporučuje ukládat data tak, jak je budete číst (denormalizace). To znamená, že pokud potřebujete zobrazit objednávku s položkami, uložíte je společně v jednom dokumentu, místo abyste je rozdělovali do více tabulek. To vede k výkonnostnímu zisku, ale musíte pečlivě zvážit, jak se data mění, abyste se vyhnuli nekonzistencím.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typová inference a praktické tipy TypeScript se snaží uhodnout typy automaticky, což znamená, že nemusíte psát anotace všude. Pokud ale deklarujete proměnnou bez inicializace, dostanete typ any, který vypne veškerou kontrolu. To je častý zdroj chyb. Místo any používejte unknown nebo konkrétní typ, případně zúžený typ pomocí typeof či instanceof. Další častou pastí je práce s poli – pokud máte pole, které může obsahovat různé typy, definujte to explicitně jako union, aby nedošlo k neočekávanému chování při volání metod.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další technikou, kterou oceníte při ladění složitějších aplikací, je použití logpointů. Logpoint je hybrid mezi console.log a breakpointem – místo zastavení běhu programu pouze vypíše hodnotu do konzole. To je ideální pro situace, kdy potřebujete sledovat hodnoty ve smyčce, ale nechcete při každé iteraci ručně pokračovat. Nastavíte ho stejně jako breakpoint, ale v menu zvolíte možnost Add logpoint a napíšete výraz, který se má vypsat. Tím získáte rychlý přehled bez zbytečného přerušování běhu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typickou chybou je psát zprávy v minulém čase. „Fixed bug&amp;quot; nebo „Přidali jsme funkci&amp;quot; je sice běžné, ale lépe se čte rozkazovací způsob: „Oprav chybu v přihlašování&amp;quot; nebo „Přidej validaci e-mailu&amp;quot;. Tento styl připomíná příkaz a přesně říká, co změna dělá. Druhým častým prohřeškem je příliš dlouhé shrnutí, které se nevejde do rozhraní a je oříznuto. Držte se tedy stručnosti. A poslední zásada: pokud změna řeší více nesouvisejících věcí, rozdělte ji do více commitů. Jeden commit by měl představovat jednu logickou jednotku.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když se řekne databáze, většina vývojářů si představí tabulky, řádky a SQL dotazy. Relační databáze jsou osvědčeným standardem, ale ne pro každý projekt jsou tou nejlepší volbou. NoSQL databáze nabízí jiný způsob ukládání dat, který může být v některých případech výrazně efektivnější. Než se ale pustíte do jejich implementace, je důležité pochopit, kdy dávají smysl a kdy naopak přinesou více problémů než užitku.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr: TypeScript se nejlépe učí při práci na reálném projektu. Začněte tím, že si do existujícího JavaScriptového projektu přidáte konfigurační soubor a postupně přepnete soubory na .ts. Sledujte chyby, které editor hlásí, a opravujte je. Po pár týdnech zjistíte, že píšete kód rychleji, protože se nemusíte spoléhat na paměť a dokumentaci. Chyby odhalíte dřív, než se dostanou k uživatelům, a to je největší přínos, který TypeScript nabízí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když procházíte historii projektu, každá commit zpráva by měla odpovědět na dvě otázky: co se změnilo a proč. Většina vývojářů ale píše zprávy jako „oprava bugu&amp;quot; nebo „úpravy&amp;quot;. Takové popisy jsou k ničemu, protože neříkají, co přesně se dělo, a hlavně proč. Bez kontextu se po pár měsících vracíte k hádankám a musíte ručně procházet diff, abyste zjistili, co se vlastně stalo. Cílem není psát romány, ale dodat dostatek informací, aby se kdokoli v historii rychle zorientoval.&lt;/div&gt;</summary>
		<author><name>SidneyLabbe8080</name></author>	</entry>

	</feed>