<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://crabcodex.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gay17U772787433</id>
	<title>CrabCodex - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://crabcodex.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gay17U772787433"/>
	<link rel="alternate" type="text/html" href="https://crabcodex.com/index.php/Special:Contributions/Gay17U772787433"/>
	<updated>2026-08-30T12:52:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://crabcodex.com/index.php?title=Pytest_a_unittest:_co_zvolit_pro_testov%C3%A1n%C3%AD_v_Pythonu&amp;diff=77368</id>
		<title>Pytest a unittest: co zvolit pro testování v Pythonu</title>
		<link rel="alternate" type="text/html" href="https://crabcodex.com/index.php?title=Pytest_a_unittest:_co_zvolit_pro_testov%C3%A1n%C3%AD_v_Pythonu&amp;diff=77368"/>
		<updated>2026-08-29T02:49:08Z</updated>

		<summary type="html">&lt;p&gt;Gay17U772787433: Created page with &amp;quot;Jak se vyhnout začátečnickým nástrahám při prvním zaměstnání První pracovní dny jsou o hlídání si vlastního tempa. Když něčemu nerozumíte, nečekejte hodiny a ptejte se kolegů. Než se ale zeptáte, zkuste problém vygooglit nebo si přečíst dokumentaci. Typická chyba je ticho a pasivita – naopak se vyplatí komentovat, co zrovna děláte, i když jde o drobnost. Většina týmů raději vysvětlí, než aby opravovala chyby, které vznikly z d...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jak se vyhnout začátečnickým nástrahám při prvním zaměstnání První pracovní dny jsou o hlídání si vlastního tempa. Když něčemu nerozumíte, nečekejte hodiny a ptejte se kolegů. Než se ale zeptáte, zkuste problém vygooglit nebo si přečíst dokumentaci. Typická chyba je ticho a pasivita – naopak se vyplatí komentovat, co zrovna děláte, i když jde o drobnost. Většina týmů raději vysvětlí, než aby opravovala chyby, které vznikly z domnělých předpokladů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak strukturovat testy a využít fixtures Když potřebujete připravit data nebo prostředí, použijte fixtures. Jsou to funkce s dekorátorem @pytest.fixture, které vrací hodnotu nebo objekt. Například&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nebojte se požádat o zpětnou vazbu po prvních týdnech. Zeptejte se, co konkrétně byste měli zlepšit – ať už jde o styl kódu, komunikaci nebo používání verzovacího systému. Naopak se vyhněte srovnávání s ostatními a př[http://Muhaylovakoliba.1gb.ua/user/lukaszwisniewski23/ ehnaným nárokům] na sebe. Kód, který napíšete za měsíc, nebude dokonalý, a to je v pořádku.  je, abyste se z každé chyby učili a dělali ji jen jednou.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si osvojte práci s promisemi a async/await. Async/await je syntaktický cukr nad promisemi, ale výrazně zjednodušuje čtení asynchronního kódu. Místo řetězení `.then()` píšete sekvenční kód s `await`. Chyby ale musíte ošetřit pomocí `try/catch` – pokud await selže a nemáte catch, aplikace spadne. Nezapomeňte, že `await` funguje pouze v async funkcích, takže pokud ho potřebujete na nejvyšší úrovni v modulu, použijte tzv. top-level await (v moderních prohlížečích a Node.js). Pozor na paralelní volání: pokud na sobě nezávisí, použijte `Promise.all`, jinak čekáte sekvenčně a zbytečně prodlužujete dobu běhu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Automatizace testů má smysl, ale musí být udržovatelná. Pište testy tak, aby nebyly závislé na konkrétních textových prvcích, které se často mění. Používejte stabilní identifikátory, jako jsou testovací ID nebo jedinečné atributy. Pokud testy začnou častěji selhávat kvůli změnám v UI než kvůli skutečným chybám, je to signál, že jsou testy špatně napsané. Pravidelně je revidujte a odstraňujte ty, které nepřinášejí žádnou hodnotu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si rozdě[https://bookmarks4.men/story.php?title=jak-zohlednit-skryte-cinnosti-pri-odhadu-casu-na-vyvojovy-ukol líte testy] na unit testy, integrační testy a end-to-end testy. Unit testy ověřují logiku jednotlivých funkcí, integrační testy kontrolují spolupráci mezi komponentami a end-to-end testy procházejí celou uživatelskou cestou. Pro každou vrstvu použijte jiný nástroj, ale dbejte na to, aby se testy daly spouštět automaticky. Ruční testování si nechte až na závěrečnou fázi, kdy potřebujete objevit neočekávané chování, které automatizace [https://venturebeat.com/?s=nezachyt%C3%AD nezachytí].&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;assert 1 + 1 == 2Nemusíte psát třídy ani dědit z nějaké základny – stačí funkce a assert. Tento minimalismus je hlavní výhodou oproti unittestu. Při psaní testů se vyplatí mít každý test nezávislý a zaměřený na jednu konkrétní funkcionalitu. Pokud test selže, okamžitě víte, co je rozbité&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na co se zaměřit při testování na reálných zařízeních Emulátory jsou užitečné pro rychlé ověření základní funkčnosti, ale nikdy nenahradí reálné zařízení. Problémy s pamětí, baterií nebo teplotou se na emulátoru neprojeví. Pokud testujete na fyzickém telefonu, zapněte si sledování výkonu a sledujte vytížení procesoru, paměti a síťovou aktivitu. Typická chyba je testovat aplikaci pouze na Wi-Fi. Přepněte se na mobilní data a vyzkoušejte, co se stane, když signál ztratíte nebo zeslábne uprostřed požadavku.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Co si pohlídat při přechodu z ES5 na ES6+? Nejprve si osvojte `let` a `const` místo `var`. `var` má funkční, ne blokový rozsah, což vede k nečekaným hodnotám ve smyčkách nebo podmínkách. Používejte `const` pro hodnoty, které se nemění, a `let` pro proměnné, které měníte. Vyhněte se `var` úplně – i když to vyžaduje změnu návyku, výsledný kód je čitelnější a předvídatelnější. [https://kamil-dabrowski-2.technetbloggers.de/jak-merit-pokryti-testy-a-kdy-uz-prestava-byt-uzitecne Typická] chyba: deklarujete proměnnou uvnitř `if` a pak ji čtete venku – s `var` to projde, ale s `let` dostanete chybu, která vás ochrání před logickou chybou.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pro práci s poli a objekty jsou klíčové metody jako `map`, `filter` a `reduce`. Místo `for` smyček s vedlejšími efekty použijte `map` pro transformaci a `filter` pro výběr. `reduce` je mocný, ale i zrádný – pokud zapomenete inicializační hodnotu, chová se jinak, než čekáte. Nezapomínejte, že tyto metody nevytvářejí hlubokou kopii – mění pouze prvky, ale vnořené objekty zůstávají sdílené. Pro immutabilní aktualizace použijte spread operátor: `const novyPole = [...pole, prvek];` nebo `const novyObjekt = ...objekt, key: value ;`. Tím se vyhnete mutaci původních dat – klíčové pro React nebo jiné frameworky, které spoléhají na referenční porovnání.&lt;/div&gt;</summary>
		<author><name>Gay17U772787433</name></author>
	</entry>
	<entry>
		<id>https://crabcodex.com/index.php?title=Odhad_%C4%8Dasu_bez_skryt%C3%BDch_%C4%8Dinnost%C3%AD:_pro%C4%8D_realita_neodpov%C3%ADd%C3%A1_pl%C3%A1nu&amp;diff=77317</id>
		<title>Odhad času bez skrytých činností: proč realita neodpovídá plánu</title>
		<link rel="alternate" type="text/html" href="https://crabcodex.com/index.php?title=Odhad_%C4%8Dasu_bez_skryt%C3%BDch_%C4%8Dinnost%C3%AD:_pro%C4%8D_realita_neodpov%C3%ADd%C3%A1_pl%C3%A1nu&amp;diff=77317"/>
		<updated>2026-08-29T02:35:54Z</updated>

		<summary type="html">&lt;p&gt;Gay17U772787433: Created page with &amp;quot;Důležité je také myslet na budoucnost. Komentáře píšete pro sebe za šest měsíců, ne pro váš aktuální mozek. Proto se vyplatí investovat čas do vět, které vysvětlují rozhodnutí, jež na první pohled nedávají smysl. Pokud jste například změnili algoritmus kvůli výkonu, napište, proč to bylo nutné a jaké měření vás k tomu vedlo. Tím se vyhnete situaci, kdy později někdo (nebo vy sami) změnu vrátí, protože nevidí důvod, proč b...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Důležité je také myslet na budoucnost. Komentáře píšete pro sebe za šest měsíců, ne pro váš aktuální mozek. Proto se vyplatí investovat čas do vět, které vysvětlují rozhodnutí, jež na první pohled nedávají smysl. Pokud jste například změnili algoritmus kvůli výkonu, napište, proč to bylo nutné a jaké měření vás k tomu vedlo. Tím se vyhnete situaci, kdy později někdo (nebo vy sami) změnu vrátí, protože nevidí důvod, proč byla provedena.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Každý vývojář zná okamžik, kdy listuje historií repozitáře a narazí na zápis typu „oprava bugu&amp;quot; nebo „update&amp;quot;. Místo jasné odpovědi, co se v daném commitu stalo, přichází jen mlhavé tušení a nutnost procházet diff řádek po řádku. Smysluplné commit zprávy nejsou formalita, ale nástroj, který vám ušetří hodiny práce při hledání příčiny problému. Zpětná dohledatelnost změn totiž nestojí na dokonalém nástroji, ale na tom, jak s historií pracujete.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další dovednost, kterou budete potřebovat, je práce s větvemi. Větve umožňují oddělit experimentální práci od stabilní verze. Když začínáte novou funkci, vytvořte větev s výstižným názvem, třeba podle čísla úkolu. Když je práce hotová, sloučíte ji zpět. Tento postup vás ochrání před tím, abyste zanesli chyby do produkčního kódu. Nezapomínejte ale na pravidlo: před sloučením si vždy prohlédněte rozdíly mezi větvemi. Někdy se stane, že soubor upravíte a v něm je jiná verze, než čekáte. Porovnání vám ukáže přesně, co se změní, a zabrání konfliktům.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem není psát kód, ale sjednotit si představu o tom, co chcete vytvořit. Než otevřete vývojové prostředí, rozhodněte se, zda cílíte na telefon, tablet, nebo obojí. Android pokrývá obrovské množství zařízení s různými velikostmi obrazovky a výkonem. Pokud začínáte, zaměřte se na jeden typ zařízení a jeden úzký účel aplikace. Sepište si tři hlavní funkce, bez kterých se aplikace neobejde, a vše ostatní nechte na později. Tím se vyhnete typickému začátečnickému problému – snaze postavit všechno najednou a výsledné aplikaci, která nefunguje spolehlivě.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jaké chyby vás nejčastěji zdrží? Největší pastí pro začátečníky je práce s emulátorem. Emulátor je pomalý a často nereprezentuje skutečné chování zařízení. Pokud máte možnost, zapojte do počítače fyzický telefon a povolte v něm ladění. Na reálném přístroji hned uvidíte, jak aplikace reaguje na dotyk, jak rychle se spouští a kolik paměti zabírá. Pokud používáte emulátor, nastavte mu dostatek paměti a procesorových jader, jinak bude každý běh frustrující a neefektivní.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je výběr nástroje. Většina týmů dnes používá distribuovaný systém, který umožňuje pracovat offline a nemá centrální server. Nejrozšířenější je ten, který znáte pod příkazem git. Než začnete, ověřte si, že máte nainstalovanou aktuální verzi. Pak si v terminálu otevřete složku svého projektu a spustíte inicializaci. Tím vytvoříte skrytou složku, která bude sledovat všechny změny souborů. Od této chvíle každé uložení do historie vyžaduje dvě operace: přidání změn do indexu a samotný záznam s popisem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pojďme si ukázat konkrétní případ. Máte funkci, která čte konfiguraci z globální proměnné. Napíšete test, který tuto proměnnou nastaví, a hned záhy test, který ji čte. První test projde, druhý selže, protože první test proměnnou nevrátil do původního stavu. Řešení? Použijte fixture s rozsahem function, která před každým testem nastaví výchozí hodnotu. A hlavně – nikdy neměňte globální stav napřímo v testovací funkci. Vždy to udělejte přes fixture, která se postará o úklid.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;První commit a každodenní práce Jakmile máte připravený projekt, udělejte první záznam. Ten by měl obsahovat celou aktuální funkční verzi kódu, ne jen prázdnou složku. Popisek prvního commitu ať je stručný, ale výstižný – například „Inicializace projektu&amp;quot;. Následně se vyhněte dvěma extrémům: neukládejte změny po každém jednom řádku s popiskem „oprava&amp;quot;, ale ani nevydržte celý den bez jediného záznamu. Ideální je udělat commit vždy, když máte hotový logický celek – novou funkci, opravený bug nebo přeformátovaný kód. Každý záznam by měl být samostatný a v ideálním případě by se k němu dalo vrátit bez obav, že rozbijete jinou část projektu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr si zvykněte číst logy a výjimky. Když aplikace spadne, logcat vám přesně řekne, na kterém řádku a proč se to stalo. Místo hledání řešení na internetu se nejdřív pokuste chybu přečíst a pochopit. Často jde o drobnost, jako je nulová hodnota nebo špatný název souboru. Pravidelným čtením logů získáte dovednost, která vám ušetří desítky hodin hledání. Postupně se propracujete od jednoduchých aplikací ke složitějším a zjistíte, že vývoj pro Android je logičtější, než se zdá.&lt;/div&gt;</summary>
		<author><name>Gay17U772787433</name></author>
	</entry>
	<entry>
		<id>https://crabcodex.com/index.php?title=User:Gay17U772787433&amp;diff=77316</id>
		<title>User:Gay17U772787433</title>
		<link rel="alternate" type="text/html" href="https://crabcodex.com/index.php?title=User:Gay17U772787433&amp;diff=77316"/>
		<updated>2026-08-29T02:35:47Z</updated>

		<summary type="html">&lt;p&gt;Gay17U772787433: Created page with &amp;quot;Autor blogu dílnou i obývákem sází na osvědčené tipy. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejraději hledat cesty, jak si usnadnit život.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu dílnou i obývákem sází na osvědčené tipy. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejraději hledat cesty, jak si usnadnit život.&lt;/div&gt;</summary>
		<author><name>Gay17U772787433</name></author>
	</entry>
</feed>