<?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=%C4%8Citeln%C3%BD_JavaScript%3A_co_vyhodit_a_%C4%8D%C3%ADm_nahradit</id>
	<title>Čitelný JavaScript: co vyhodit a čím nahradit - 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=%C4%8Citeln%C3%BD_JavaScript%3A_co_vyhodit_a_%C4%8D%C3%ADm_nahradit"/>
	<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=%C4%8Citeln%C3%BD_JavaScript:_co_vyhodit_a_%C4%8D%C3%ADm_nahradit&amp;action=history"/>
	<updated>2026-10-11T15:08:20Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=%C4%8Citeln%C3%BD_JavaScript:_co_vyhodit_a_%C4%8D%C3%ADm_nahradit&amp;diff=863939&amp;oldid=prev</id>
		<title>OHIWilmer53554 o 19:40, 1 paź 2026</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=%C4%8Citeln%C3%BD_JavaScript:_co_vyhodit_a_%C4%8D%C3%ADm_nahradit&amp;diff=863939&amp;oldid=prev"/>
		<updated>2026-10-01T19:40:49Z</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 19:40, 1 paź 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;Větve používejte i v malém týmu. Pro novou funkci si vytvořte větev&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;na ní dělejte průběžné změny a po ověření ji sloučte zpět&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tím &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hlavní linie udrží v použitelném stavu &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nasazení na produkci z ní může kdykoli proběhnout. Pozor na dlouho otevřené větve: čím déle žijí odděleně&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tím větší konflikty při sloučení přijdou&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Slučujte často &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v malých kusech.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Výběr vývojového prostředí pro Python ovlivní&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kolik času strávíte psaním kódu a kolik bojem s nástrojem&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Neexistuje jedno univerzální IDE. Záleží na typu projektu, zkušenostech &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hardwaru&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud zvolíte příliš těžký editor na starším notebooku&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;budete čekat na každé našeptání. Naopak příliš jednoduchý editor vás donutí psát vše ručně a přijdete o refaktoring&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ladění &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;správu virtuálních prostředí&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Čistý kód v JavaScriptu neznamená krásně barevné zvýraznění v editoru. Znamená kód, kterému po půl roce porozumíš i ty sám, a který kolega opraví bez toho, aby se bál něco rozbít. Největší problém nebývá složitá logika, ale zbytečný chaos: nejasné názvy, dlouhé funkce a proměnné, které mění význam podle toho, kde se zrovna použijí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Typická chyba začátečníka je ignorování chybových stavů&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Soubor může chybět&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sloupec v CSV se může jmenovat jinak&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;síť může vypadnout&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Obalte rizikové operace blokem try a except&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale ne tak&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že všechny chyby potichu spolknete&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vypište konkrétní &lt;/del&gt;zprávu &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a skript ukončete nenulovým kódem&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dále se vyhněte pevnému zápisu cest a přihlašovacích údajů přímo &lt;/del&gt;do &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kódu. Uložte je do konfiguračního souboru nebo do proměnných prostředí&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ať se dají měnit bez zásahu do logiky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U rozsáhlých projektů oceníte indexaci celého repozitáře. Ta ale spotřebovává paměť. Pokud máte méně RAM, vypněte indexaci nepotřebných složek, jako jsou virtuální &lt;/del&gt;prostředí &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nebo stažené balíčky. Další častá chyba je ignorování nastavení projektu. Konfiguraci ukládejte do složky projektu, ne do globálního nastavení. Kolegové tak dostanou stejné podmínky. U týmové práce se vyplatí verzovat konfiguraci editoru a nedávat do ní absolutní cesty.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jakmile zvládnete ukládat změny, naučte se pracovat s větvemi. Větev je oddělená linka vývoje, na které můžete zkoušet nové věci, aniž byste rozbili funkční verzi&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro malé úpravy stačí jedna hlavní větev, pro větší práci si vytvořte novou, dokončete ji a pak ji sloučte zpět. Při slučování může dojít ke konfliktu, když stejné místo upravily dvě větve. Není to katastrofa – otevřete soubor, vyberte správnou variantu a uložte výsledek.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, co potřebujete denně: našeptávání při psaní, skok na definici, zobrazení dokumentace, integrovaný terminál a调试ger. Pro většinu projektů stačí editor s rozšířeními. Rozšíření pro Python musí umět pracovat s virtuálními prostředími. Po instalaci vždy ručně &lt;/del&gt;nastavte &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interpret: otevřete paletu příkazů, zvolte interpret a vyberte ten z projektového prostředí. Typická chyba je, že editor použije globální Python a vy pak řešíte, proč chybí modul, který jste nainstalovali do virtuálního prostředí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Od jednoho souboru k opakovanému skriptu První automatizace nemá být robustní systém, ale něco, co zvládnete pochopit celé. Vezměte úkol, který děláte alespoň dvakrát týdně, a přepište ho do souboru skript.py&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro práci se soubory a cestami používejte modul pathlib, pro text open&lt;/del&gt;() &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s kontextovým manažerem with&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pro CSV modul csv. Cesty nikdy neskládejte ručně přes lomítka, protože se to na různých systémech chová jinak. Když skript funguje, spouštějte ho z terminálu, ne přes dvojklik — uvidíte chybové výpisy a rychleji pochopíte, co se pokazilo&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funkce, která má přes 30 řádků, obvykle dělá víc věcí. Rozdělte ji. Každá funkce by měla mít jednu odpovědnost a ideálně vracet hodnotu, ne měnit okolní stav. Vyhněte se hlubokému vnořování if bloků – použijte guard clauses na začátku funkce. Místo if (podminka) { ... } else { ... } často stačí otočit podmínku a vrátit se včas. Tím se sníží počet úrovní odsazení a kód se čte shora dolů jako příběh.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jakmile &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zautomatizujete dva &lt;/del&gt;nebo &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tři rutinní úkoly&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přestane &lt;/del&gt;být &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Python cizím jazykem &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stane &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nástrojem&lt;/del&gt;, na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který &lt;/del&gt;si &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vzpomenete dřív než na ruční kopírování&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nepřeskakujte fázi malých skriptů &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nezačínejte architekturou&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které ještě nerozumíte&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Automatizace má smysl ve chvíli&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kdy jí rozumíte natolik&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že dokážete rychle najít &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;opravit chybu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kterou sama způsobí&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;Nakonec zvažte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zda potřebujete plnohodnotné IDE&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nebo stačí editor&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IDE nabízí &lt;/del&gt;více &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vestavěných nástrojů&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale bývá pomalejší &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;složitější &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nastavení&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Editor s rozšířeními je lehčí &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lépe se přizpůsobí&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozhodující není popularita&lt;/del&gt;, ale to, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak rychle &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;něm najdete chybu a spustíte testy&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vyberte jeden &lt;/del&gt;nástroj, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;naučte se klávesové zkratky &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nastavte si prostředí podle sebe. Teprve až narazíte &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;konkrétní limit&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hledejte jiný. Časté přeskakování mezi editory je nejjistější způsob, jak ztratit produktivitu&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;Než uděláte první potvrzení změn, založte soubor&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který vyjmenuje ignorované cesty&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Bez něj &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;do historie dostanou tisíce souborů z knihoven &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;každá změna závislosti zaplaví rozdíly&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ve kterých se nedá nic najít&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stejně důležité je nastavit jméno &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e-mail&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;protože podle nich se přiřazují jednotlivé změny&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pak teprve inicializujte repozitář &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přidejte první dávku souborů&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kontrolujte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co se chystá k uložení&lt;/ins&gt;, a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to ještě před samotným potvrzením&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Čistý kód v JavaScriptu neznamená krásně barevné zvýraznění v editoru. Znamená kód, kterému po půl roce porozumíš i ty sám, a který kolega opraví bez toho, aby se bál něco rozbít. Největší problém nebývá složitá logika, ale zbytečný chaos: nejasné názvy, dlouhé funkce a proměnné, které mění význam podle toho, kde se zrovna použijí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Chybové stavy řešte centrálně&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jeden middleware na konci registrace routerů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;čtyři argumenty&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;žádné posílání odpovědi uvnitř&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;V něm rozhodněte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zda jde o známou chybu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nebo o neočekávanou výjimku&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;U neočekávané zalogujte stopu a klientovi pošlete obecnou &lt;/ins&gt;zprávu &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bez detailů&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nikdy neposílejte &lt;/ins&gt;do &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;odpovědi celý stack trace&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ani v interním &lt;/ins&gt;prostředí. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zároveň &lt;/ins&gt;nastavte &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;process&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;on&lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;unhandledRejection&#039;&lt;/ins&gt;), &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aby pád nezůstal bez záznamu&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funkce, která má přes 30 řádků, obvykle dělá víc věcí. Rozdělte ji. Každá funkce by měla mít jednu odpovědnost a ideálně vracet hodnotu, ne měnit okolní stav. Vyhněte se hlubokému vnořování if bloků – použijte guard clauses na začátku funkce. Místo if (podminka) { ... } else { ... } často stačí otočit podmínku a vrátit se včas. Tím se sníží počet úrovní odsazení a kód se čte shora dolů jako příběh.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jakmile &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zvládnete základy, začněte používat větve. Pro každou novou funkci &lt;/ins&gt;nebo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;opravu si vytvořte samostatnou větev a do hlavní větve slučujte až hotovou a otestovanou práci. Tím se vyhnete tomu, že rozpracovaný kód blokuje ostatní změny. Pokud pracujete sami, může se to zdát zbytečné, ale zvyk se vyplatí ve chvíli&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kdy se k projektu připojí kolega nebo když se potřebujete rychle vrátit k poslední stabilní verzi. Slučování řešte průběžně, ne jednou za měsíc – čím déle větev žije, tím větší konflikty vás čekají.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Selektory a memoizace: kde lidé přestávají Selektory by měly &lt;/ins&gt;být &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;čisté &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pokud možno memoizované. Když vytváříte novou referenci při každém volání, například state.items.filter(...) bez memoizace, komponenta &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;překreslí při každé akci, i když se data nezměnila. Řešením je createSelector z knihovny Reselect. Ten si pamatuje vstupy a přepočítá výstup jen tehdy&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;když se změní relevantní část stavu. Pozor ale &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to, že memoizace funguje pouze pro jeden argument. Pokud selektor používáte s parametry, musíte vytvořit novou instanci selektoru pro každou kombinaci, jinak &lt;/ins&gt;si &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;budete předávat špatná data.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Redux sám o sobě nezaručí výkon. Problém většinou nevzniká v store, ale v tom, jak komponenty odebírají data. Pokud použijete useSelector bez rozmyšlení, každá změna v store může spustit překreslení i tam, kde to není potřeba&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Základ je vrátit z selektoru co nejmenší &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co nejstabilnější hodnotu. Místo celého objektu vracejte konkrétní pole&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která komponenta skutečně používá&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když potřebujete více hodnot&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;použijte shallowEqual z React-Redux nebo více selektorů. Tím výrazně omezíte zbytečnou práci.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další pastí je ignorování struktury store. Normalizovaná data – tedy entity uložené podle ID a seznamy pouze s těmito ID – výrazně zjednodušují aktualizace. Když máte hluboko vnořené objekty&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;každá změna znamená kopírování celé větve. To je pomalé &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;náchylné k chybám. Normalizace sice ze začátku vypadá jako práce navíc, ale u větších aplikací se vyplatí. Stejně tak nepoužívejte Redux pro data&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která přicházejí ze serveru a mají krátkou životnost. Na to stačí lokální stav nebo knihovna pro načítání dat&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;Druhou častou chybou je ukládat do Reduxu vše. Lokální stav&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jako otevřené menu nebo text ve formuláři&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;do store nepatří&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Redux je pro sdílená data, která potřebuje &lt;/ins&gt;více &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;částí aplikace, případně pro data, jež mají přežít navigaci. Pokud do store cpe­te i to, co zvládne useState&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zvyšujete složitost &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nutíte komponenty reagovat &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;změny, které se jich netýkají&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Držte store co nejmenší a účelový.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Poslední věc: middleware &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;thunky. Není nutné používat thunk na všechno&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud potřebujete řešit složité asynchronní scénáře, zvažte redux-saga nebo redux-observable&lt;/ins&gt;, ale &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vždy s ohledem na &lt;/ins&gt;to, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kolik toho tým zvládne udržovat. Příliš mnoho vrstev abstrakce vede k tomu, že se ztrácí přehled o tom, co se &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aplikaci děje&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Redux je &lt;/ins&gt;nástroj, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne cíl. Když ho používáte vědomě &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s ohledem &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;výkon&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bude aplikace svižná a předvídatelná&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>OHIWilmer53554</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=%C4%8Citeln%C3%BD_JavaScript:_co_vyhodit_a_%C4%8D%C3%ADm_nahradit&amp;diff=863799&amp;oldid=prev</id>
		<title>BessieLuxton79: Utworzono nową stronę &quot;Větve používejte i v malém týmu. Pro novou funkci si vytvořte větev, na ní dělejte průběžné změny a po ověření ji sloučte zpět. Tím se hlavní linie udrží v použitelném stavu a nasazení na produkci z ní může kdykoli proběhnout. Pozor na dlouho otevřené větve: čím déle žijí odděleně, tím větší konflikty při sloučení přijdou. Slučujte často a v malých kusech.&lt;br&gt;&lt;br&gt;Výběr vývojového prostředí pro Python ovlivní…&quot;</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=%C4%8Citeln%C3%BD_JavaScript:_co_vyhodit_a_%C4%8D%C3%ADm_nahradit&amp;diff=863799&amp;oldid=prev"/>
		<updated>2026-10-01T19:35:05Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Větve používejte i v malém týmu. Pro novou funkci si vytvořte větev, na ní dělejte průběžné změny a po ověření ji sloučte zpět. Tím se hlavní linie udrží v použitelném stavu a nasazení na produkci z ní může kdykoli proběhnout. Pozor na dlouho otevřené větve: čím déle žijí odděleně, tím větší konflikty při sloučení přijdou. Slučujte často a v malých kusech.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Výběr vývojového prostředí pro Python ovlivní…&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Větve používejte i v malém týmu. Pro novou funkci si vytvořte větev, na ní dělejte průběžné změny a po ověření ji sloučte zpět. Tím se hlavní linie udrží v použitelném stavu a nasazení na produkci z ní může kdykoli proběhnout. Pozor na dlouho otevřené větve: čím déle žijí odděleně, tím větší konflikty při sloučení přijdou. Slučujte často a v malých kusech.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Výběr vývojového prostředí pro Python ovlivní, kolik času strávíte psaním kódu a kolik bojem s nástrojem. Neexistuje jedno univerzální IDE. Záleží na typu projektu, zkušenostech a hardwaru. Pokud zvolíte příliš těžký editor na starším notebooku, budete čekat na každé našeptání. Naopak příliš jednoduchý editor vás donutí psát vše ručně a přijdete o refaktoring, ladění a správu virtuálních prostředí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Čistý kód v JavaScriptu neznamená krásně barevné zvýraznění v editoru. Znamená kód, kterému po půl roce porozumíš i ty sám, a který kolega opraví bez toho, aby se bál něco rozbít. Největší problém nebývá složitá logika, ale zbytečný chaos: nejasné názvy, dlouhé funkce a proměnné, které mění význam podle toho, kde se zrovna použijí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typická chyba začátečníka je ignorování chybových stavů. Soubor může chybět, sloupec v CSV se může jmenovat jinak, síť může vypadnout. Obalte rizikové operace blokem try a except, ale ne tak, že všechny chyby potichu spolknete. Vypište konkrétní zprávu a skript ukončete nenulovým kódem. Dále se vyhněte pevnému zápisu cest a přihlašovacích údajů přímo do kódu. Uložte je do konfiguračního souboru nebo do proměnných prostředí, ať se dají měnit bez zásahu do logiky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U rozsáhlých projektů oceníte indexaci celého repozitáře. Ta ale spotřebovává paměť. Pokud máte méně RAM, vypněte indexaci nepotřebných složek, jako jsou virtuální prostředí nebo stažené balíčky. Další častá chyba je ignorování nastavení projektu. Konfiguraci ukládejte do složky projektu, ne do globálního nastavení. Kolegové tak dostanou stejné podmínky. U týmové práce se vyplatí verzovat konfiguraci editoru a nedávat do ní absolutní cesty.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jakmile zvládnete ukládat změny, naučte se pracovat s větvemi. Větev je oddělená linka vývoje, na které můžete zkoušet nové věci, aniž byste rozbili funkční verzi. Pro malé úpravy stačí jedna hlavní větev, pro větší práci si vytvořte novou, dokončete ji a pak ji sloučte zpět. Při slučování může dojít ke konfliktu, když stejné místo upravily dvě větve. Není to katastrofa – otevřete soubor, vyberte správnou variantu a uložte výsledek.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, co potřebujete denně: našeptávání při psaní, skok na definici, zobrazení dokumentace, integrovaný terminál a调试ger. Pro většinu projektů stačí editor s rozšířeními. Rozšíření pro Python musí umět pracovat s virtuálními prostředími. Po instalaci vždy ručně nastavte interpret: otevřete paletu příkazů, zvolte interpret a vyberte ten z projektového prostředí. Typická chyba je, že editor použije globální Python a vy pak řešíte, proč chybí modul, který jste nainstalovali do virtuálního prostředí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Od jednoho souboru k opakovanému skriptu První automatizace nemá být robustní systém, ale něco, co zvládnete pochopit celé. Vezměte úkol, který děláte alespoň dvakrát týdně, a přepište ho do souboru skript.py. Pro práci se soubory a cestami používejte modul pathlib, pro text open() s kontextovým manažerem with, pro CSV modul csv. Cesty nikdy neskládejte ručně přes lomítka, protože se to na různých systémech chová jinak. Když skript funguje, spouštějte ho z terminálu, ne přes dvojklik — uvidíte chybové výpisy a rychleji pochopíte, co se pokazilo.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Funkce, která má přes 30 řádků, obvykle dělá víc věcí. Rozdělte ji. Každá funkce by měla mít jednu odpovědnost a ideálně vracet hodnotu, ne měnit okolní stav. Vyhněte se hlubokému vnořování if bloků – použijte guard clauses na začátku funkce. Místo if (podminka) { ... } else { ... } často stačí otočit podmínku a vrátit se včas. Tím se sníží počet úrovní odsazení a kód se čte shora dolů jako příběh.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jakmile zautomatizujete dva nebo tři rutinní úkoly, přestane být Python cizím jazykem a stane se nástrojem, na který si vzpomenete dřív než na ruční kopírování. Nepřeskakujte fázi malých skriptů a nezačínejte architekturou, které ještě nerozumíte. Automatizace má smysl ve chvíli, kdy jí rozumíte natolik, že dokážete rychle najít a opravit chybu, kterou sama způsobí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec zvažte, zda potřebujete plnohodnotné IDE, nebo stačí editor. IDE nabízí více vestavěných nástrojů, ale bývá pomalejší a složitější na nastavení. Editor s rozšířeními je lehčí a lépe se přizpůsobí. Rozhodující není popularita, ale to, jak rychle v něm najdete chybu a spustíte testy. Vyberte jeden nástroj, naučte se klávesové zkratky a nastavte si prostředí podle sebe. Teprve až narazíte na konkrétní limit, hledejte jiný. Časté přeskakování mezi editory je nejjistější způsob, jak ztratit produktivitu.&lt;/div&gt;</summary>
		<author><name>BessieLuxton79</name></author>
	</entry>
</feed>