<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.it-core.eu/wiki/index.php?action=history&amp;feed=atom&amp;title=Za%C4%8D%C3%ADn%C3%A1me_s_Dockerem%3A_kontejnerizace_bez_zbyte%C4%8Dn%C3%A9_paniky</id>
	<title>Začínáme s Dockerem: kontejnerizace bez zbytečné paniky - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.it-core.eu/wiki/index.php?action=history&amp;feed=atom&amp;title=Za%C4%8D%C3%ADn%C3%A1me_s_Dockerem%3A_kontejnerizace_bez_zbyte%C4%8Dn%C3%A9_paniky"/>
	<link rel="alternate" type="text/html" href="https://www.it-core.eu/wiki/index.php?title=Za%C4%8D%C3%ADn%C3%A1me_s_Dockerem:_kontejnerizace_bez_zbyte%C4%8Dn%C3%A9_paniky&amp;action=history"/>
	<updated>2026-08-21T23:54:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.it-core.eu/wiki/index.php?title=Za%C4%8D%C3%ADn%C3%A1me_s_Dockerem:_kontejnerizace_bez_zbyte%C4%8Dn%C3%A9_paniky&amp;diff=140709&amp;oldid=prev</id>
		<title>CharmainOcasio: Created page with &quot;Komunikace odhadů času patří k nejcitlivějším momentům spolupráce. Zákazník chce jasný termín, vy ale víte, že se může cokoliv změnit. Základem je rozlišovat mezi pojmy „odhad&quot; a „závazek&quot;. Odhad je pracovní hypotéza, závazek je pevný slib. Pokud obojí smícháte, dříve nebo později narazíte. Místo slov „bude hotovo&quot; používejte „předpokládám&quot; nebo „odhaduji&quot;. Tím dáváte najevo, že časový údaj není věštěním z kři...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.it-core.eu/wiki/index.php?title=Za%C4%8D%C3%ADn%C3%A1me_s_Dockerem:_kontejnerizace_bez_zbyte%C4%8Dn%C3%A9_paniky&amp;diff=140709&amp;oldid=prev"/>
		<updated>2026-08-21T17:38:22Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Komunikace odhadů času patří k nejcitlivějším momentům spolupráce. Zákazník chce jasný termín, vy ale víte, že se může cokoliv změnit. Základem je rozlišovat mezi pojmy „odhad&amp;quot; a „závazek&amp;quot;. Odhad je pracovní hypotéza, závazek je pevný slib. Pokud obojí smícháte, dříve nebo později narazíte. Místo slov „bude hotovo&amp;quot; používejte „předpokládám&amp;quot; nebo „odhaduji&amp;quot;. Tím dáváte najevo, že časový údaj není věštěním z kři...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Komunikace odhadů času patří k nejcitlivějším momentům spolupráce. Zákazník chce jasný termín, vy ale víte, že se může cokoliv změnit. Základem je rozlišovat mezi pojmy „odhad&amp;quot; a „závazek&amp;quot;. Odhad je pracovní hypotéza, závazek je pevný slib. Pokud obojí smícháte, dříve nebo později narazíte. Místo slov „bude hotovo&amp;quot; používejte „předpokládám&amp;quot; nebo „odhaduji&amp;quot;. Tím dáváte najevo, že časový údaj není věštěním z křišťálové koule, ale výsledkem analýzy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při připojování komponent k Reduxu se vyhněte nadměrnému používání connect nebo useSelector. Vybírejte si malé části stavu, ne celý objekt. Pokud komponenta potřebuje jen jednu hodnotu, vyberte ji přímo. To platí i pro akce – dispatchujte jen ty, které komponenta skutečně používá. Pokud máte komponentu, která potřebuje mnoho hodnot, zvažte, zda není lepší rozdělit ji na menší části. Tento přístup zlepšuje čitelnost a testovatelnost.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pokud jste dosud kontejnerizaci odkládali, protože vám přišla složitá, Docker toto vše mění. Místo instalace celého virtuálního systému stačí jediný obraz, který obsahuje aplikaci i vše, co ke svému běhu potřebuje. Výsledkem je, že stejný software funguje na vašem notebooku, na testovacím serveru i v produkci, aniž byste museli cokoli přepisovat. Tento článek vás provede prvními kroky tak, abyste se vyhnuli nejčastějším chybám a začali Docker používat opravdu prakticky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec se zaměřte na testování. Redux se díky čistým funkcím testuje snadno: reducer otestujete bez renderování komponenty, action creatory porovnáte s očekávanými objekty. Pro integrační testy použijte renderWithRedux, který obalí komponentu storem. Nezapomínejte testovat i chybové stavy, nejen happy path. Tím odhalíte problémy dřív, než se dostanou do produkce.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pamatujte, že pokrytí testy je jen jeden z mnoha ukazatelů kvality. Nepoužívejte ho jako jediný cíl. Doporučuji kombinovat ho s mutačním testováním, které ověřuje, zda testy skutečně odhalí vložené chyby. Pokud vám mutační testy ukazují slabé testy, i při vysokém pokrytí, je čas přestat honit čísla a zaměřit se na kvalitu testovacích případů. Stanovte si hranici, kdy je pokrytí dostatečné — pro mnoho projektů je 70–80 % rozumný cíl, ale kritické systémy vyžadují více. Hlavní je, abyste měřili pokrytí vždy s rozmyslem a nenechali se zlákat čísly bez kontextu. Když se to naučíte, pokrytí se stane užitečným pomocníkem, ne bičem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typickým problémem je rozdílné chování funkcí pro práci s datem a časem. V MySQL používáte NOW(), v PostgreSQL je to CURRENT_TIMESTAMP – ale pozor, v PostgreSQL vrací timestamp s časovým pásmem, což může ovlivnit porovnávání. Také funkce pro zaokrouhlování, řetězové agregace (GROUP_CONCAT v MySQL, string_agg v PostgreSQL) a práce s NULL mají odlišnou sémantiku. Doporučuji před migrací projít všechny uložené procedury, triggery a pohledy a upravit je ručně – automatické konvertory často selhávají na složitější logice.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při práci s kontejnery se nevyhnete práci s příkazy. Základní je docker build pro vytvoření obrazu a docker run pro spuštění kontejneru. Mnozí začátečníci zapomínají, že kontejner po skončení běhu zmizí, pokud mu nezadáte přepínač -d (detached) pro běh na pozadí, nebo -it pro interaktivní režim. Tím se dostáváme k prvnímu typickému omylu: lidé očekávají, že kontejner poběží jako služba, ale ve výchozím stavu se spustí, vykoná úlohu a ukončí se. Pokud chcete, aby běžel stále, musíte buď spustit dlouhoběžící proces, nebo použít orchestrátor, jako je Docker Compose.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejčastější chybou začátečníků je ukládání odvozených dat do store. Například filtrovaný seznam položek: když ho uložíte, musíte ho aktualizovat při každé změně zdrojových dat. Místo toho si v komponentě spočítejte odvozená data pomocí selektoru. Selektory jsou funkce, které z celého stavu vyberou jen to, co potřebujete. Používejte je s knihovnou Reselect pro memoizaci – zabráníte zbytečným re-renderům. Tím se aplikace stane rychlejší a stav zůstane jediným zdrojem pravdy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Častou chybou je také testovat příliš mnoho najednou. Jeden test by měl ověřovat jednu věc. Když test selže, měli byste z hlášky okamžitě poznat, co je špatně, bez nutnosti ladit. Pokud potřebujete otestovat víc scénářů, použijte parametrizaci. Ta vám umožní spustit stejný test s různými vstupními hodnotami. Například @pytest.mark.parametrize(&amp;quot;a,b,ocekavano&amp;quot;, [(1,2,3), (0,0,0), (-1,1,0)]) spustí test třikrát a každé selhání hlásí zvlášť.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak si vytvořit první kontejner a nespálit se Základním stavebním kamenem je soubor Dockerfile. Ten popisuje, jak se má výsledný obraz vytvořit. Začněte jednoduchým příkladem: vezměte oficiální obraz jazyka Python, nakopírujte do něj svůj skript a nastavte příkaz, který se má spustit. Důležité je dodržet pořadí instrukcí. Pokud totiž změníte pouze kód aplikace, Docker využije cache a build proběhne rychle. Pokud ale nejprve zkopírujete celý projekt a teprve poté instalujete závislosti, každá změna v kódu způsobí, že se závislosti instalují znovu, což je pomalé a frustrující.&lt;/div&gt;</summary>
		<author><name>CharmainOcasio</name></author>
	</entry>
</feed>