<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://jak.mazovia.edu.pl/index.php?action=history&amp;feed=atom&amp;title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch</id>
	<title>Jak zorganizovat verzování kódu při více knihovnách - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://jak.mazovia.edu.pl/index.php?action=history&amp;feed=atom&amp;title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch"/>
	<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch&amp;action=history"/>
	<updated>2026-09-14T05:11:56Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch&amp;diff=103405&amp;oldid=prev</id>
		<title>MckinleyStraub6 o 18:59, 21 sie 2026</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch&amp;diff=103405&amp;oldid=prev"/>
		<updated>2026-08-21T18:59:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 18:59, 21 sie 2026&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;Linia 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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 style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při odhadu vždy zohledněte závislosti na jiných týmech nebo externích systémech&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud implementace závisí na API&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které teprve vzniká, přidejte k odhadu rizikový faktor – klidně 50 % navíc. Stejně tak analytika, která čeká na rozhodnutí product ownera, je časově nejistá. V takovém případě odhadujte &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozpětí, ne jedním číslem: „5–8 bodů&quot; místo „6 bodů&quot;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si osvojte techniku re-estimace – přehodnocení odhadů během sprintu. Agilní týmy často dělají chybu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že odhad berou jako neměnný rozsudek. Ale pokud zjistíte, že analýza trvá déle, než &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;čekalo, okamžitě to komunikujte &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;upravte plán&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stejně tak po dokončení sprintu porovnejte odhad &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;skutečností &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kalibrujte budoucí odhady. Tento zpětnovazební cyklus je důležitější než samotný odhad – jinak budete stále dokola opakovat stejné chyby&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Odhad času &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;agilním vývoji je vždy kompromisem mezi přesností &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rychlostí. Než začnete plánovat&lt;/del&gt;, rozdělte &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;si práci &lt;/del&gt;na dvě &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;základní kategorie: analytické fáze (průzkum, návrh, specifikace) &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;implementaci (kódění, testování, nasazení)&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Každá z nich má jiné riziko a nejistotu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a proto je nelze odhadovat stejným metrem&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Analytika obvykle zabere méně času&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale chyba v ní se promítne do celé implementace – pokud podceníte návrh&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v kódu to doženete dvojnásobně&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jak konkrétně rozdělit odhad &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fáze Pro každou user story si odděleně odhadněte analytickou část a implementaci&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Analytika zahrnuje rozhovory se stakeholdery&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tvorbu wireframů, datový model, definici akceptačních kritérií&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Implementace pak kódění&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;unit testy, code review, integraci a nasazení&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Častou &lt;/del&gt;chybou je&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, že týmy sčítají čas &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;analytiku a implementaci do jednoho čísla&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale zapomínají na přechodové fáze – předání mezi analytikem a vývojářem, synchronizaci&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;opravy po review&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Přidejte na tyto režijní činnosti rezervu 10–15 % k celkovému odhadu&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Na závěr &lt;/del&gt;si &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;osvojte &lt;/del&gt;práci s &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;příkazy příkazové řádky&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při spuštění pytest -v získáte podrobnější výstup o každém testu, pytest -k umožní spustit pouze testy odpovídající zadanému výrazu &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pytest --maxfail=1 zastaví běh po prvním selhání&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tyto nástroje vám ušetří čas při ladění&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Testování není zbytečná práce – &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to investice, která se vám vrátí &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;podobě stabilnějšího kódu a jistoty při změnách&lt;/del&gt;. Začněte s &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;malými testy &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednoduchých funkcích &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;postupně přidávejte složitější scénáře&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Typické chyby a prevence Nejčastější chybou &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;spoléhání &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;„nejnovější dostupnou verzi&lt;/del&gt;&quot;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To vede k tomu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že se build chová odlišně na různých počítačích&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;protože prostředí stáhne pokaždé jinou verzi&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Řešením &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;soubor zámků&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který zaznamená přesnou &lt;/del&gt;verzi &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;každé knihovny a také hash jejího zdroje. Tento soubor musí být commitnutý a nesmí &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;měnit ručně&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Druhou častou chybou je aktualizace knihovny, která mění chování v jiné části &lt;/del&gt;projektu, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aniž by to &lt;/del&gt;byl &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reflektováno &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;testech. Proto si před aktualizací spusťte celou testovací sadu a porovnejte výstup před a po změně&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Další pastí je verzování samotného &lt;/del&gt;kódu &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;podle data&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nikoliv podle sémantické verze&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud přidáváte nové funkce&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale zároveň měníte staré&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zvyšte major verzi&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud jen opravujete chyby&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zvyšte minor verzi&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud měníte jen interní detaily, zvyšte patch&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Toto pravidlo musí být napsané v dokumentaci projektu a každý člen týmu ho musí dodržovat. Bez toho se rychle stane&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že dvě verze knihovny mají stejné číslo, ale různé chování, což je nejhorší možný scénář&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Asynchronní akce testujete podobně&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale s jedním rozdílem: potřebujete simulovaný dispatch a getState&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Předpokládejme thunk&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který načítá data z API &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;po úspěchu dispatchuje akci&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V testu vytvoříte mock funkce pro dispatch &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;getState&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zavoláte thunk &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;počkáte &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dokončení&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Klíčové je správně nastavit mock pro API volání &lt;/del&gt;– &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ideálně pomocí vstřikování závislostí, kdy thunk přijímá funkci pro fetch jako parametr. Tím zajistíte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že test nezávisí na síti&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a můžete simulovat úspěch i chybu&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Prakticky doporučuji zavést automatizovaný skript&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který ověří konzistenci verzí mezi všemi soubory projektu&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tento skript spusťte jako součást CI&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tedy před každým nasazením&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Měl by kontrolovat&lt;/del&gt;, že &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;deklarované verze odpovídají skutečně použitým a &lt;/del&gt;že &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;žádný modul neodkazuje &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;neexistující číslo&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dále nastavte pravidlo&lt;/del&gt;, že &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;každá změna závislosti musí projít code review a musí &lt;/del&gt;být &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zapsána do changelogu&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tím se vyhnete situaci, kdy někdo tiše povýší knihovnu &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;až po měsíci se objeví problém &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;produkci&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jak strukturu přetavit v akci Nejdůležitější část přichází po identifikaci problému&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Každý podnět musí dostat odpovědného vlastníka &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;konkrétní termín&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Například pokud tým narazí &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nejasnosti v zadání&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;určete jednoho člověka&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který do pěti dnů připraví novou šablonu zadání&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nestačí říct „domluvíme se&quot; – to &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cesta k tomu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;za dva týdny vrátíte ke stejnému problému. Na konci retrospektivy si vyberte maximálně tři akční kroky&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jinak se tým zahltí &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nic se neudělá&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; 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 style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Verzování kódu je pro každého programátora nezbytností&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Git je nejrozšířenější nástroj&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který vám umožní sledovat změny &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;projektech&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vracet &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k předchozím verzím &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;spolupracovat s týmem&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud s ním začínáte, nemusíte &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bát – stačí pochopit pár základních principů &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zvládnete první kroky&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dalším častým problémem je testování příliš mnoha věcí &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednom testu. Metoda by měla ověřovat jen jednu chování. Pokud máte metodu, která počítá &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zároveň ukládá do souboru&lt;/ins&gt;, rozdělte &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;test &lt;/ins&gt;na dvě &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;části – jednu pro výpočet &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;druhou pro uložení&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tím snadněji najdete příčinu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;když test selže&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Používejte také srozumitelné názvy testů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které popisují očekávané chování&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;například Add_ReturnsCorrectSum_WhenGivenTwoPositiveNumbers. Takový název je samodokumentující a usnadňuje údržbu&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nejčastější chyby, kterým se vyhnout Jednou z nejčastějších chyb je zapomenutí &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hlavičky požadavku&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mnoho API vyžaduje v hlavičce specifikovat formát odpovědi&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;obvykle Content-Type: application/json&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud to neuvedeš&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;můžeš dostat odpověď ve formátu XML nebo dokonce chybu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Další častou &lt;/ins&gt;chybou je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ignorování rychlostních limitů. Veřejná API mívají omezení &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;počet dotazů za minutu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;takže pokud budeš posílat požadavky příliš rychle&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;server tě může dočasně zablokovat&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vždy si přečti sekci o limitech a respektuj je&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nakonec &lt;/ins&gt;si &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zvykněte na &lt;/ins&gt;práci s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;větvemi (branches)&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vytvoříte si vlastní větev příkazem git branch nazev &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přepnete se na ni pomocí git checkout nazev. Ve větvi můžete experimentovat bez ovlivnění hlavní verze&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Po dokončení ji sloučíte zpět přes git merge&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tento postup &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;standardem &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;týmové spolupráci&lt;/ins&gt;. Začněte s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednoduchými příklady, cvičte &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vlastních projektech &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Git se brzy stane přirozenou součástí vaší práce&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dalším častým problémem &lt;/ins&gt;je&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, že vývojáři zapomínají &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tzv. „verzovací politiku&lt;/ins&gt;&quot; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pro celý projekt&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Místo toho&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aby každá knihovna měla vlastní číslo&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;začnou používat společné číslo pro všechny&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;špatně, protože pak nelze sledovat&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která část projektu se reálně změnila. Doporučuji zavést hierarchii: hlavní projekt má vlastní &lt;/ins&gt;verzi&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, ale ta &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;odvozuje od verzí jednotlivých knihoven&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při každém vydání hlavního &lt;/ins&gt;projektu &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zapište do manifestu přesné verze všech knihoven. Tím získáte reprodukovatelnost – kdykoli se můžete vrátit k přesnému stavu kódu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který &lt;/ins&gt;byl &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nasazen. Tento postup vyžaduje disciplínu, ale ušetří hodiny hledání chyb &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;produkci&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při práci s API se také vyvaruj tvrdému zakódování adres a klíčů přímo do &lt;/ins&gt;kódu&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Pro klíče používej proměnné prostředí&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které se nastavují mimo zdrojový kód&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jinak riskuješ&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že se tvoje klíče dostanou na veřejnost&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pokud kód sdílíš nebo nahraješ na internet&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stejně tak si zvykni na zpracování chyb – vždy ošetři situaci&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kdy API neodpovídá podle očekávání&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Používej bloky try-catch nebo &lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;catch()&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;abys program nespadl při chybě sítě&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jakmile si vyzkoušíš první dotaz&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;začni zkoumat dokumentaci daného API&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tam najdeš&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jaké adresy (endpointy) používat, jaké parametry lze zadat &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jaké metody HTTP se používají&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro začátečníky je klíčové pochopit rozdíl mezi GET (získání dat) &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;POST (odeslání dat). Začni pouze s GET požadavky&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;protože jsou bezpečné &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nezpůsobí žádné změny &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;serveru&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Věnuj pozornost také stavovým kódům odpovědí &lt;/ins&gt;– &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kód 200 znamená úspěch&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;404 stránka nenalezena&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;500 chyba serveru&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nakonec si zvykněte testy spouštět automaticky&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ideálně při každém uložení nebo před odesláním změn do sdíleného repozitáře&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud testy běží až večer&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;je snadné je ignorovat. Rychlá zpětná vazba je klíčová&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nebojte se&lt;/ins&gt;, že &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;první testy budou pomalé nebo &lt;/ins&gt;že &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jich bude málo. Každý test, který projde, vám dává jistotu. Až narazíte &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chybu, kterou test odhalí, pochopíte, proč se vyplatí je psát&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Častým problémem začátečníků je&lt;/ins&gt;, že &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dělají commity příliš velké nebo je zapomenou odeslat. Ideální je commitovat po každé malé funkční změně – to usnadňuje hledání chyb. Další chybou je ignorování souborů, které nemají &lt;/ins&gt;být &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sledovány, jako jsou dočasné soubory nebo složky s knihovnami. Vytvořte si soubor &lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;gitignore &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uveďte &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;něm, co má Git ignorovat, např. node_modules/ nebo .env. Tím předejdete zbytečnému nepořádku&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Při implementaci interakcí se vyhněte přehnaným animacím. Plynulé přechody jsou vítané, ale pokud trvají déle než 300 milisekund, uživatel začíná vnímat prodlevu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Měňte vlastnosti, které nezpůsobují layout shift – místo změny marginu použijte transform &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;opacity&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nezapomínejte &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stavy prvků: hover&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;focus&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;active a disabled&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Focus styl &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;klíčový pro klávesovou navigaci&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;proto jej nikdy neodstraňujte jen kvůli estetice. Typickým přehlédnutím je také prázdný stav – pokud &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uživatel dostane na obrazovku bez dat&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;měl by vidět srozumitelnou hlášku &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;možnost akce&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>MckinleyStraub6</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch&amp;diff=101569&amp;oldid=prev</id>
		<title>CSJPolly7827782: Utworzono nową stronę &quot;Při odhadu vždy zohledněte závislosti na jiných týmech nebo externích systémech. Pokud implementace závisí na API, které teprve vzniká, přidejte k odhadu rizikový faktor – klidně 50 % navíc. Stejně tak analytika, která čeká na rozhodnutí product ownera, je časově nejistá. V takovém případě odhadujte v rozpětí, ne jedním číslem: „5–8 bodů&quot; místo „6 bodů&quot;.&lt;br&gt;&lt;br&gt;Nakonec si osvojte techniku re-estimace – přehodnocení od…&quot;</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Jak_zorganizovat_verzov%C3%A1n%C3%AD_k%C3%B3du_p%C5%99i_v%C3%ADce_knihovn%C3%A1ch&amp;diff=101569&amp;oldid=prev"/>
		<updated>2026-08-21T18:44:35Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Při odhadu vždy zohledněte závislosti na jiných týmech nebo externích systémech. Pokud implementace závisí na API, které teprve vzniká, přidejte k odhadu rizikový faktor – klidně 50 % navíc. Stejně tak analytika, která čeká na rozhodnutí product ownera, je časově nejistá. V takovém případě odhadujte v rozpětí, ne jedním číslem: „5–8 bodů&amp;quot; místo „6 bodů&amp;quot;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si osvojte techniku re-estimace – přehodnocení od…&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Při odhadu vždy zohledněte závislosti na jiných týmech nebo externích systémech. Pokud implementace závisí na API, které teprve vzniká, přidejte k odhadu rizikový faktor – klidně 50 % navíc. Stejně tak analytika, která čeká na rozhodnutí product ownera, je časově nejistá. V takovém případě odhadujte v rozpětí, ne jedním číslem: „5–8 bodů&amp;quot; místo „6 bodů&amp;quot;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si osvojte techniku re-estimace – přehodnocení odhadů během sprintu. Agilní týmy často dělají chybu, že odhad berou jako neměnný rozsudek. Ale pokud zjistíte, že analýza trvá déle, než se čekalo, okamžitě to komunikujte a upravte plán. Stejně tak po dokončení sprintu porovnejte odhad se skutečností a kalibrujte budoucí odhady. Tento zpětnovazební cyklus je důležitější než samotný odhad – jinak budete stále dokola opakovat stejné chyby.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Odhad času v agilním vývoji je vždy kompromisem mezi přesností a rychlostí. Než začnete plánovat, rozdělte si práci na dvě základní kategorie: analytické fáze (průzkum, návrh, specifikace) a implementaci (kódění, testování, nasazení). Každá z nich má jiné riziko a nejistotu, a proto je nelze odhadovat stejným metrem. Analytika obvykle zabere méně času, ale chyba v ní se promítne do celé implementace – pokud podceníte návrh, v kódu to doženete dvojnásobně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak konkrétně rozdělit odhad na fáze Pro každou user story si odděleně odhadněte analytickou část a implementaci. Analytika zahrnuje rozhovory se stakeholdery, tvorbu wireframů, datový model, definici akceptačních kritérií. Implementace pak kódění, unit testy, code review, integraci a nasazení. Častou chybou je, že týmy sčítají čas na analytiku a implementaci do jednoho čísla, ale zapomínají na přechodové fáze – předání mezi analytikem a vývojářem, synchronizaci, opravy po review. Přidejte na tyto režijní činnosti rezervu 10–15 % k celkovému odhadu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr si osvojte práci s příkazy příkazové řádky. Při spuštění pytest -v získáte podrobnější výstup o každém testu, pytest -k umožní spustit pouze testy odpovídající zadanému výrazu a pytest --maxfail=1 zastaví běh po prvním selhání. Tyto nástroje vám ušetří čas při ladění. Testování není zbytečná práce – je to investice, která se vám vrátí v podobě stabilnějšího kódu a jistoty při změnách. Začněte s malými testy na jednoduchých funkcích a postupně přidávejte složitější scénáře.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typické chyby a prevence Nejčastější chybou je spoléhání na „nejnovější dostupnou verzi&amp;quot;. To vede k tomu, že se build chová odlišně na různých počítačích, protože prostředí stáhne pokaždé jinou verzi. Řešením je soubor zámků, který zaznamená přesnou verzi každé knihovny a také hash jejího zdroje. Tento soubor musí být commitnutý a nesmí se měnit ručně. Druhou častou chybou je aktualizace knihovny, která mění chování v jiné části projektu, aniž by to byl reflektováno v testech. Proto si před aktualizací spusťte celou testovací sadu a porovnejte výstup před a po změně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další pastí je verzování samotného kódu podle data, nikoliv podle sémantické verze. Pokud přidáváte nové funkce, ale zároveň měníte staré, zvyšte major verzi. Pokud jen opravujete chyby, zvyšte minor verzi. Pokud měníte jen interní detaily, zvyšte patch. Toto pravidlo musí být napsané v dokumentaci projektu a každý člen týmu ho musí dodržovat. Bez toho se rychle stane, že dvě verze knihovny mají stejné číslo, ale různé chování, což je nejhorší možný scénář.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Asynchronní akce testujete podobně, ale s jedním rozdílem: potřebujete simulovaný dispatch a getState. Předpokládejme thunk, který načítá data z API a po úspěchu dispatchuje akci. V testu vytvoříte mock funkce pro dispatch a getState, zavoláte thunk a počkáte na dokončení. Klíčové je správně nastavit mock pro API volání – ideálně pomocí vstřikování závislostí, kdy thunk přijímá funkci pro fetch jako parametr. Tím zajistíte, že test nezávisí na síti, a můžete simulovat úspěch i chybu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prakticky doporučuji zavést automatizovaný skript, který ověří konzistenci verzí mezi všemi soubory projektu. Tento skript spusťte jako součást CI, tedy před každým nasazením. Měl by kontrolovat, že deklarované verze odpovídají skutečně použitým a že žádný modul neodkazuje na neexistující číslo. Dále nastavte pravidlo, že každá změna závislosti musí projít code review a musí být zapsána do changelogu. Tím se vyhnete situaci, kdy někdo tiše povýší knihovnu a až po měsíci se objeví problém v produkci.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak strukturu přetavit v akci Nejdůležitější část přichází po identifikaci problému. Každý podnět musí dostat odpovědného vlastníka a konkrétní termín. Například pokud tým narazí na nejasnosti v zadání, určete jednoho člověka, který do pěti dnů připraví novou šablonu zadání. Nestačí říct „domluvíme se&amp;quot; – to je cesta k tomu, že se za dva týdny vrátíte ke stejnému problému. Na konci retrospektivy si vyberte maximálně tři akční kroky, jinak se tým zahltí a nic se neudělá.&lt;/div&gt;</summary>
		<author><name>CSJPolly7827782</name></author>
	</entry>
</feed>