<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://jak.mazovia.edu.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AhmadAguiar</id>
	<title>Mazovia - Wkład użytkownika [pl]</title>
	<link rel="self" type="application/atom+xml" href="https://jak.mazovia.edu.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AhmadAguiar"/>
	<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php/Specjalna:Wk%C5%82ad/AhmadAguiar"/>
	<updated>2026-11-06T12:48:26Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Kdy_se_vyplat%C3%AD_NoSQL_a_co_z%C3%ADsk%C3%A1te_m%C3%ADsto_tabulek%3F&amp;diff=860495</id>
		<title>Kdy se vyplatí NoSQL a co získáte místo tabulek?</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Kdy_se_vyplat%C3%AD_NoSQL_a_co_z%C3%ADsk%C3%A1te_m%C3%ADsto_tabulek%3F&amp;diff=860495"/>
		<updated>2026-10-01T17:59:13Z</updated>

		<summary type="html">&lt;p&gt;AhmadAguiar: Utworzono nową stronę &amp;quot;První [http://bbs.51pinzhi.cn/home.php?mod=space&amp;amp;uid=8217973 rekonstrukce koupelny krok za krokem] je oddělit odhad od . Když zákazník chce termín, řekněte nahlas, co ten termín znamená: „Tohle je můj odhad za předpokladu, že dostanu podklady do středy a nikdo nezmění zadání.&amp;quot; Tím se z odhadu stává podmíněný výrok, ne příslib. Zákazník pak ví, co se musí stát, aby termín platil, a vy máte páku, když se podmínky změní. Bez t…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;První [http://bbs.51pinzhi.cn/home.php?mod=space&amp;amp;uid=8217973 rekonstrukce koupelny krok za krokem] je oddělit odhad od . Když zákazník chce termín, řekněte nahlas, co ten termín znamená: „Tohle je můj odhad za předpokladu, že dostanu podklady do středy a nikdo nezmění zadání.&amp;quot; Tím se z odhadu stává podmíněný výrok, ne příslib. Zákazník pak ví, co se musí stát, aby termín platil, a vy máte páku, když se podmínky změní. Bez této věty se každý posun termínu jeví jako vaše selhání.&amp;lt;br&amp;gt;&amp;lt;br&amp;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;Na co si dát pozor v praxi První chyba je zvolit NoSQL jen proto, že je moderní. U transakcí, kde potřebujete atomicitu přes více entit, je relační databáze stále bezpečnější volba. NoSQL transakce existují, ale mívají slabší záruky a složitější obsluhu. Druhá chyba je ignorovat modelování podle dotazů. V relační databázi navrhnete tabulky a dotazy přijdou později. U NoSQL je to obráceně: nejdřív zjistěte, jak se data budou číst, a podle toho navrhněte dokumenty nebo klíče. Třetí chyba je podcenit konzistenci. Distribuované systémy často volí dostupnost před okamžitou shodou, takže se můžete setkat s zastaralými daty. Pro platby nebo skladové zásoby je to nepřijatelné.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testovací pyramida není dogma, ale nástroj na řízení rizika. Většina týmů skončí u opačného extrému: stovky jednotkových testů, které procházejí, a přesto se aplikace rozbije při prvním kliknutí. Problém nebývá v počtu testů, ale v tom, co který test skutečně ověřuje. Pyramidu je proto lepší brát jako poměr mezi rychlostí zpětné vazby a věrností produkčnímu prostředí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;NoSQL není jedna technologie, ale skupina databází, které opouštějí pevné tabulky a cizí klíče. Místo toho ukládají data jako dokumenty, klíč-hodnota páry, široké sloupce nebo grafy. Každý typ řeší jiný problém: dokumentové databáze drží celý objekt pohromadě, klíč-hodnota slouží k bleskovému čtení podle identifikátoru, grafové databáze zvládají vztahy mezi entitami. Než začnete, položte si otázku, jestli vůbec potřebujete měnit přístup. Pokud data sedí v tabulkách a dotazy jsou rychlé, přechod jen přidá práci.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Hlavní důvod, proč NoSQL vzniklo, je škálování a pružnost schématu. Relační databáze zvládne vertikální růst jen do určitého bodu, pak je potřeba rozdělit data na více strojů. Distribuované NoSQL databáze to dělají nativně, často pomocí shardingu a replikace. Druhý důvod je vývoj: když se struktura dat mění každý týden, migrace tabulek zdržuje. Dokumentové databáze umožní uložit různé verze objektu vedle sebe a aplikace si poradí s chybějícími poli. To je výhoda i past, protože bez kontroly schématu snadno vznikne nekonzistentní nepořádek.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základní cyklus má tři kroky a plete se pořád dokola. git status ukáže, co se změnilo. git add soubor přesune změnu do přípravy (staging). git commit -m &amp;quot;popis&amp;quot; ji uloží jako bod v historii. Kdo vynechá git add, diví se, že commit je prázdný. Kdo naopak přidá omylem celý adresář přes git add ., dostane do historie i to, co tam nechce. Zpráva commitu nemá být „oprava&amp;quot; nebo „změny&amp;quot; — za měsíc nebudeš vědět, co se opravovalo. Piš krátce, ale konkrétně: „oprava dělení nulou v exportu&amp;quot;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na vrcholu stojí [https://Soundcloud.com/search/sounds?q=end-to-end%20testy&amp;amp;filter.license=to_modify_commercially end-to-end testy]. Ověřují scénář z pohledu uživatele, ale jsou nejdražší na údržbu. Nemá smysl jimi pokrývat každou kombinaci vstupů. Vyberte kritické cesty: přihlášení, platba, uložení objednávky. Pokud e2e test padá kvůli změně textu v tlačítku, je příliš křehký a patří do nižší vrstvy. Stabilita je důležitější než pokrytí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Praktický postup: nejdřív napište jednotkový test pro novou logiku, pak integrační pro hranici systému a e2e jen pro scénář, který by jinak nikdo neověřil. Sledujte dobu běhu. Pokud sada jednotkových testů trvá déle než několik sekund, něco děláte špatně. Pokud integrační testy vyžadují ruční spuštění databáze, ztratí se v CI a přestanou se spouštět.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kdy se NoSQL vyplatí a na co si dát pozor První situace: ukládání dokumentů, [https://Edition.cnn.com/search?q=jejich%C5%BE%20struktura jejichž struktura] se liší kus od kusu. Typicky produktové katalogy, kde každá kategorie má jiné atributy. Relační databáze by vyžadovala buď mnoho nulových sloupců, nebo tabulku atributů. Dokumentová databáze uloží celý objekt jako jeden záznam a dotaz vrátí přesně to, co potřebujete. Pozor ale na to, že bez schématu snadno vznikne nekonzistentní datový bordel — chybějící pole, různé názvy pro totéž. Vyplatí se zavést validační pravidla už na úrovni aplikace.&lt;/div&gt;</summary>
		<author><name>AhmadAguiar</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Rychl%C3%A9_unit_testy,_nebo_pomale_E2E:_kde_je_hranice&amp;diff=860203</id>
		<title>Rychlé unit testy, nebo pomale E2E: kde je hranice</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Rychl%C3%A9_unit_testy,_nebo_pomale_E2E:_kde_je_hranice&amp;diff=860203"/>
		<updated>2026-10-01T17:53:05Z</updated>

		<summary type="html">&lt;p&gt;AhmadAguiar: Utworzono nową stronę &amp;quot;Základ tvoří unit testy. Testují jednu funkci, jednu třídu nebo jeden malý modul bez databáze, sítě a souborového systému. Musí běžet v milisekundách, jinak je vývojáři přestanou spouštět. Pište je na logiku, výpočty, validace a větvení. Naopak netestujte gettery, settery a triviální delegování. Častá chyba je mockování všeho, co jde — výsledkem je test, který ověřuje implementaci, ne chování. Když se změní vnitřní s…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Základ tvoří unit testy. Testují jednu funkci, jednu třídu nebo jeden malý modul bez databáze, sítě a souborového systému. Musí běžet v milisekundách, jinak je vývojáři přestanou spouštět. Pište je na logiku, výpočty, validace a větvení. Naopak netestujte gettery, settery a triviální delegování. Častá chyba je mockování všeho, co jde — výsledkem je test, který ověřuje implementaci, ne chování. Když se změní vnitřní struktura, test spadne, i když aplikace funguje správně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kde se nejčastěji chybuje a jak se [https://www.ft.com/search?q=tomu%20vyhno tomu vyhno]&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Požadavek na sloučení nemá být formalita. Napište do něj, co změna řeší, jak jste ji otestovali a na co si dát pozor. Recenzent nemá hádat záměr z deseti commitů. Když je změna velká, rozdělte ji na několik menších požadavků. Malé změny se kontrolují rychleji a snáze se vracejí, pokud se něco pokazí. Nikdy neschvalujte vlastní změnu jen proto, že spěcháte.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typická chyba je snaha izolovat všechno. Mockovat databázi, HTTP klienta i čas najednou vede k testům, které ověřují mocky, ne kód. U integračních testů je lepší použít skutečnou databázi [https://mem168new.com/home.php?mod=space&amp;amp;uid=4320414 osvětlení v obýváku] kontejneru nebo lehkou instanci a připravit data před každým testem. Pokud test závisí na datech z produkce, je křehký a nikdo mu nebude věřit.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základem obrany je používat parametrizované dotazy nebo prepared statements. Databázový ovladač pošle strukturu dotazu zvlášť a hodnoty zvlášť, takže vstup nikdy nezmění syntaxi příkazu. V praxi to znamená, že místo skládání řetězce s proměnnou uvnitř dotazu předáte hodnotu jako vázaný parametr. Tento přístup podporuje většina moderních knihoven a frameworků. Pokud používáte ORM, ověřte, že i přímé dotazy v něm jsou parametrizované, protože některé metody umožňují vložit surový řetězec.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U pohovoru nepředstírej zkušenosti, které nemáš. Mnohem lépe působí, když řekneš, že praxi nemáš, ale tento konkrétní projekt jsi otestoval a našel tyto chyby. Připrav si odpovědi na otázky typu: jak bys otestoval přihlášení, co uděláš, když vývojář tvrdí, že chyba není reprodukovatelná, jak rozhodneš, kterou chybu hlásit první. Pokud umíš odpovědět věcně, tvá chybějící praxe přestane být hlavní téma.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;End-to-end testy jdou celou cestou od uživatelského rozhraní po databázi. Jsou nejdražší a nejkřehčí. Patří sem jen klíčové scénáře: přihlášení, dokončení objednávky, uložení formuláře. Když jich máte desítky, každá změna designu nebo textu je rozbije. Typická chyba je nahrazovat jimi integrační testy — běží pomalu, padají z nesouvisejících důvodů a tým je začne vypínat. Testujte přes stabilní selektory, ne podle textu tlačítek. A nikdy nepoužívejte produkční data.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testovací pyramida je pomůcka, která říká, kolik testů  máte mít. Nahoře jsou pomalé a drahé testy přes celou aplikaci, uprostřed integrační testy a dole rychlé unit testy. Nejde o dogma, ale o poměr, který odpovídá ceně za údržbu a rychlosti zpětné vazby. Když se poměr rozbije, vývoj se zpomalí a testy začnou překážet.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Integrační vrstva rozhoduje o důvěře Integrační testy propojují dvě až tři reálné části: aplikaci s databází, frontu se zpracovatelem, HTTP klienta s testovacím serverem. Jsou pomalejší, ale odhalí chyby v mapování, transakcích, serializaci a konfiguraci. Držte jich méně než unit testů, ale více než end-to-end. Používejte reálnou databázi v kontejneru nebo v paměti, ne ručně psané náhrady. Zásadní je izolace: každý test si připraví [https://Www.modernmom.com/?s=vlastn%C3%AD%20data vlastní data] a po sobě je uklidí. Sdílený stav mezi testy vede k náhodným pádům, které se těžko hledají.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Poměr není svatý. U knihovny bez uživatelského rozhraní může být pyramida skoro jen základna. U aplikace s velkým množstvím integrací se prostřední vrstva rozšíří. Sledujte dobu běhu sady a četnost pádů. Pokud unit testy trvají déle než pár sekund, něco dělají špatně. Pokud integrační testy potřebují ruční zásah, nejsou izolované. Pokud end-to-end testy padají náhodně, jsou příliš křehké. Pyramida je nástroj pro rozhodování, ne soutěž o počty.&lt;/div&gt;</summary>
		<author><name>AhmadAguiar</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Kdy%C5%BE_za%C4%8D%C3%ADn%C3%A1%C5%A1_s_testy_v_Pythonu,_pytest_ti_u%C5%A1et%C5%99%C3%AD_hodiny&amp;diff=859843</id>
		<title>Když začínáš s testy v Pythonu, pytest ti ušetří hodiny</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Kdy%C5%BE_za%C4%8D%C3%ADn%C3%A1%C5%A1_s_testy_v_Pythonu,_pytest_ti_u%C5%A1et%C5%99%C3%AD_hodiny&amp;diff=859843"/>
		<updated>2026-10-01T17:43:34Z</updated>

		<summary type="html">&lt;p&gt;AhmadAguiar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Malé funkce a jedna odpovědno&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Největší chybou je poměr obrátit: mnoho e2e testů a málo jednotkových. Další je sdílený stav mezi testy. Test, který projde sám, ale selže v sadě, obvykle závisí na datech z předchozího běhu. Řešením je izolace a deterministická data. Pyramidu nevnímejte jako početní poměr, ale jako rozhodnutí, kde zaplatíte za rychlost a kde za věrnost.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Neurčitost není slabost, mlčení o rizicích ano Neurčitý odhad neznamená, že nemáte říct nic. Znamená, že k číslu přidáte podmínky. „Tři týdny, pokud se nezmění rozsah a pokud do dvou dnů dostanu přístupy&amp;quot; je konkrétnější než „tři týdny&amp;quot; a zároveň vás chrání. Vypište dvě až tři věci, které odhad mohou posunout, a dejte je klientovi písemně. Když se pak něco změní, nejednáte o výmluvu, ale o dříve pojmenované riziko.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kde začátečníci nejčastěji klopýtnou První [https://www.hometalk.com/search/posts?filter=%C4%8Dast%C3%A1 častá] chyba je chybějící kontrola vstupu. Express sám o sobě nic nevaliduje, takže data z těla požadavku musí projít ověřením dřív, než se dostanou do databáze. Druhá chyba je ignorování asynchronních chyb: pokud v async handleru vyhodíte výjimku a nezavoláte next(err), požadavek zůstane viset a klient čeká do timeoutu. Řešením je obalovací funkce nebo knihovna, která výjimky předá dál. Třetí chyba je návratové kódy – vracet 200 i při neúspěchu mate klienty i monitorovací nástroje.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Praktický postup: nejdřív napište jednotkový test pro novou logiku, pak integrační pro hranici systému a e2e jen pro scénář, který by jinak nikdo neověřil. Sledujte dobu běhu. Pokud sada jednotkových testů trvá déle než několik sekund, něco děláte špatně. Pokud integrační  ruční spuštění databáze, ztratí se v CI a přestanou se spouštět.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec si hlídejte slovník. Slova jako „určitě&amp;quot;, „stoprocentně&amp;quot; nebo „do té doby to bude&amp;quot; znějí dobře, ale vytvářejí závazek, který nemůžete splnit. Nahraďte je slovy „předpokládám&amp;quot;, „odhaduji&amp;quot;, „pokud se nic nezmění&amp;quot;. Není to slabost, je to přesnost. Klient, který slyší poctivý odhad s podmínkami, vám bude věřit i tehdy, když se termín posune. Klient, [http://bbs.yx3.com/home.php?mod=space&amp;amp;uid=286418 který slyšel] slib, vám nebude věřit už nikdy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typická chyba je skrývat rezervu a tvářit se jako stroj. Klient pak nevidí, že máte prostor na neočekávané věci, a každé zpoždění bere jako selhání. Lepší je říct: „Můj odhad je deset dní, z toho dva dny jsou rezerva na věci, které teď nevidíme.&amp;quot; Rezerva není lenost, je to nástroj, jak slib dodržet. Zároveň ji nepoužívejte jako omluvu pro práci, která se dá udělat hned.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na vrcholu stojí end-to-end testy. Ověřují scénář z pohledu uživatele, ale jsou nejdražší na údržbu. Nemá smysl jimi pokrývat každou kombinaci vstupů. Vyberte kritické cesty: přihlášení, platba, uložení objednávky. Pokud e2e test padá kvůli změně textu v tlačítku, je příliš křehký a patří do nižší vrstvy. Stabilita je důležitější než pokrytí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testovací pyramida není dogma, ale nástroj na řízení rizika. Většina týmů skončí u opačného extrému: stovky jednotkových testů, které procházejí, a přesto se aplikace rozbije při prvním kliknutí. Problém nebývá v počtu testů, ale v tom, co který test skutečně ověřuje. Pyramidu je proto lepší brát jako poměr mezi rychlostí zpětné vazby a věrností produkčnímu prostředí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Postavit REST API v Node.js jde dvěma cestami: použít vestavěný modul http, nebo sáhnout po Expressu. Rozdíl není v tom, co je „modernější&amp;quot;, ale v tom, kolik práce chcete řešit ručně. Holý Node.js zvládne všechno, co Express umí, jenže za cenu vlastního kódu pro routování, parsování těla požadavku, hlaviček a zpracování chyb. Express tyto vrstvy dodává hotové a nechává prostor na logiku aplikace.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Fixtures místo kopírování přípravy Jakmile testů přibude, začne se opakovat příprava – vytvoření databáze, načtení konfigurace, přihlášení klienta. Řešením jsou fixtures. Dekorátor @pytest.fixture označí funkci, jejíž návratovou [https://Sportsrants.com/?s=hodnotu%20lze hodnotu lze] př[https://bookmark4You.win/story.php?title=jak-zlepsit-retrospektivu-tymu-pomoci-strukturovane-zpetne-vazby edat jako] argument do testu. pytest ji zavolá před testem a uklidí po něm, pokud definuješ i kód pro úklid přes yield. Fixture mohou mít různé rozsahy – function, module, session – a je snadné je omylem nastavit příliš vysoko a způsobit, že se stav mezi testy míchá. Drž se výchozího rozsahu function, dokud nemáš měřený důvod pro jiný.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U čistého Node.js narazíte na stejné problémy, jen dřív. Musíte ručně rozlišit metodu a cestu, načíst tělo po částech, ošetřit maximální velikost a sestavit odpověď včetně hlaviček. Výhodou je menší závislost a jasná představa o tom, co se v aplikaci děje. Nevýhodou je, že každý nový endpoint znamená další kód, který se snadno zvrhne v nepořádek. Express tuto režii odstraňuje a drží strukturu čitelnou i při desítkách tras.&lt;/div&gt;</summary>
		<author><name>AhmadAguiar</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Kdy%C5%BE_za%C4%8D%C3%ADn%C3%A1%C5%A1_s_testy_v_Pythonu,_pytest_ti_u%C5%A1et%C5%99%C3%AD_hodiny&amp;diff=859689</id>
		<title>Když začínáš s testy v Pythonu, pytest ti ušetří hodiny</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Kdy%C5%BE_za%C4%8D%C3%ADn%C3%A1%C5%A1_s_testy_v_Pythonu,_pytest_ti_u%C5%A1et%C5%99%C3%AD_hodiny&amp;diff=859689"/>
		<updated>2026-10-01T17:38:45Z</updated>

		<summary type="html">&lt;p&gt;AhmadAguiar: Utworzono nową stronę &amp;quot;Základ je jednoduchý: soubor pojmenovaný test_*.py nebo *_test.py, v něm funkce začínající test_. pytest si je najde sám. Funkce obvykle nebere žádné argumenty, uvnitř zavolá testovaný kód a výsledek ověří pomocí prostého assert. Když assert selže, pytest vypíše přesně, co bylo vlevo, co vpravo a kde k chybě došlo. To je hlavní výhoda proti ručnímu if a print.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Odhad není soutěž v přesnosti na minuty. Je to nástroj, jak…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Základ je jednoduchý: soubor pojmenovaný test_*.py nebo *_test.py, v něm funkce začínající test_. pytest si je najde sám. Funkce obvykle nebere žádné argumenty, uvnitř zavolá testovaný kód a výsledek ověří pomocí prostého assert. Když assert selže, pytest vypíše přesně, co bylo vlevo, co vpravo a kde k chybě došlo. To je hlavní výhoda proti ručnímu if a print.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Odhad není soutěž v přesnosti na minuty. Je to nástroj, jak se domluvit na očekávání. Když budeš skryté činnosti zveřejňovat už při zadávání, přestanou být skryté. Tým je uvidí, vedení je uvidí a ty nebudeš muset vysvětlovat, [https://gratisafhalen.be/author/kamilnowak17/ rady pro rekonstrukci]č to trvalo déle. Začni u příštího úkolu: než řekneš termín, projdi si, co všechno se kolem něj skutečně stane.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Většina týmů si vystačí s větvemi v jednom repozitáři. Fork je nutností jen tehdy, když přispěvatelé nemají právo zápisu — typicky externí spolupracovníci nebo open source. Pokud si nejste jistí, začněte s větvemi a přejděte na forky až ve chvíli, kdy narazíte na omezení práv. Zbytečný fork navíc znamená další [https://Www.Blogrollcenter.com/?s=vzd%C3%A1len%C3%BD vzdálený] repozitář, který je potřeba synchronizovat, a to je častý zdroj zmatku.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Před podpisem smlouvy si vyžádejte informace o tom, jak často vycházejí aktualizace a jak jsou oznamovány změny v chování. Zjistěte, zda je možné provozovat podporu odděleně od databázového serveru, aby její pád neohrozil samotná data. A hlavně – ověřte, jak vypadá obnova po výpadku. Ne teoreticky, ale konkrétně: kolik kroků je potřeba udělat a jak dlouho to trvá. Bez toho zůstává volba podpory jen hrou na jistotu, která v ostrém provozu neobstojí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Fixtures místo kopírování přípravy Jakmile testů přibude, začne se opakovat příprava – vytvoření databáze, načtení konfigurace, přihlášení klienta. Řešením jsou fixtures. Dekorátor @pytest.fixture označí funkci, jejíž návratovou hodnotu lze předat jako argument do testu. pytest ji zavolá před testem a uklidí po něm, pokud definuješ i kód pro úklid přes yield. Fixture mohou mít různé rozsahy – function, module, session – a je snadné je omylem nastavit příliš vysoko a způsobit, že se stav mezi testy míchá. Drž se výchozího rozsahu function, dokud nemáš měřený důvod pro jiný.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kde se typy vyplatí a kde &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na co si dát pozor: testy nesmí záviset na pořadí ani na datech, která zůstala z předchozího běhu. Pokud test  do souboru nebo do databáze, musí po sobě uklidit, jinak druhý běh selže z nesouvisejícího důvodu. Dále se vyhni volání skutečné sítě a externích služeb – nahraď je pomocí monkeypatch nebo jednoduchých fake objektů. Test, který padá kvůli výpadku cizí služby, přestane lidi bavit. A když test selže, nespravuj rovnou kód – nejdřív si přečti výpis, protože často je chyba v očekávané hodnotě, ne v logice.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Parametrizace je druhá věc, kterou pytest zvládá lépe než ruční smyčky. Dekorátor @pytest.mark.parametrize předá testu několik sad vstupů a očekávaných výstupů. Každá sada se hlásí jako samostatný test, takže při pádu vidíš konkrétní kombinaci. Typická chyba je dávat do parametrů příliš mnoho odpovědnosti – test pak ověřuje pět věcí najednou a jeho selhání se špatně čte. Rozděl ho raději na dva menší.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testování v Pythonu bývá první věc, kterou začátečník odkládá, protože se zdá jako práce navíc. Jenže právě pytest je navržený tak, aby se psaní testů podobalo psaní běžných funkcí. Žádné třídy, žádné speciální metody, žádné importy z unittest. Nainstaluje se jedním příkazem a spustí se příkazem pytest v adresáři projektu. To je celé nastavení.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Výběr podpory pro databáze nezačíná u ceny ani u seznamu funkcí. Začíná u toho, co vaše aplikace skutečně dělá. Jinou podporu potřebuje skladová evidence s tisíci transakcí za minutu a jinou reportovací nástroj, který se dotazuje jednou denně. Než se pustíte do srovnávání, sepište si tři věci: jaký typ dotazů převažuje, jaký je poměr čtení a zápisu a jak dlouho si můžete dovolit výpadek. Teprve pak má smysl řešit konkrétní řešení.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základ je jednoduchý: nainstalujte TypeScript přes správce balíčků a spusťte překlad. Vznikne soubor tsconfig.json, který určuje, jak přísně se má kontrola chovat. První praktický krok je zapnout „strict&amp;quot; na true. Zní to nepříjemně, protože vás to donutí řešit null a undefined, ale právě tam vzniká většina chyb za běhu. Druhý krok je nastavit „noImplicitAny&amp;quot; na true, aby se každé neuvedené typu nebralo jako „any&amp;quot;. Právě „any&amp;quot; je nejčastější past: vypne kontrolu a TypeScript se změní v JavaScript s extra kroky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;[https://www.martindale.com/Results.aspx?ft=2&amp;amp;frm=freesearch&amp;amp;lfd=Y&amp;amp;afs=D%C5%AFle%C5%BEit%C3%A1 Důležitá] je i otázka, kdo bude podporu ovládat. Pokud s databázemi teprve začínáte, potřebujete řešení s rozumným výchozím nastavením a srozumitelnými výstupy. Naopak zkušený tým ocení možnost zasáhnout do konfigurace a přizpůsobit chování. Nenechte se zlákat tvrzením, že vše zvládne jediné tlačítko. Většina incidentů vzniká v okamžiku, kdy se něco pokazí a není jasné, jak to vrátit zpět.&lt;/div&gt;</summary>
		<author><name>AhmadAguiar</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=Kdy%C5%BE_testy_p%C5%99estanou_odhalovat_chyby,_je_%C4%8Das_je_zjednodu%C5%A1it&amp;diff=859341</id>
		<title>Když testy přestanou odhalovat chyby, je čas je zjednodušit</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=Kdy%C5%BE_testy_p%C5%99estanou_odhalovat_chyby,_je_%C4%8Das_je_zjednodu%C5%A1it&amp;diff=859341"/>
		<updated>2026-10-01T17:27:50Z</updated>

		<summary type="html">&lt;p&gt;AhmadAguiar: Utworzono nową stronę &amp;quot;Většina vývojářů dnes ví, že se mají vyhýbat skládání SQL dotazů pomocí řetězců. Přesto se SQL injection drží na předních příčkách chyb v bezpečnosti webových aplikací. Důvod není neznalost základního pravidla, ale to, že se injektáž často schová tam, kde ji nikdo nečeká: v dynamicky sestavovaných klauzulích ORDER BY, v názvech tabulek nebo v dávkovém zpracování. Tam parametrizace v tom nejběžnějším slova smyslu…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Většina vývojářů dnes ví, že se mají vyhýbat skládání SQL dotazů pomocí řetězců. Přesto se SQL injection drží na předních příčkách chyb v bezpečnosti webových aplikací. Důvod není neznalost základního pravidla, ale to, že se injektáž často schová tam, kde ji nikdo nečeká: v dynamicky sestavovaných klauzulích ORDER BY, v názvech tabulek nebo v dávkovém zpracování. Tam parametrizace v tom nejběžnějším slova smyslu nefunguje, protože databázový engine nedovolí předat identifikátor jako parametr.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si každý před prací stáhne aktuální stav hlavní větve. Z ní vytvoří novou větev s krátkým, výstižným názvem podle toho, co řešíte. Do větve dělejte malé commity, ideálně několik za den. Jeden commit má obsahovat jednu logickou změnu. Když do jednoho commitu zamícháte opravu překlepu, změnu konfigurace a novou funkci, při pozdějším hledání chyby budete litovat. Zpráva commitu má říct, co změna dělá, ne jak jste se u toho cítili.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak nastavit hranici, která vydrž&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Až bude skript fungovat ručně, teprve pak ho nechte běžet podle plánu. Ověřte, že běží i po restartu počítače, že má přístupová práva ke všem složkám a že případné heslo neukládáte natvrdo do kódu. Automatizace není o tom napsat co nejvíc řádků, ale o tom odstranit přesně tu rutinu, která vás zdržuje. Začněte malým skriptem, který dělá jednu věc spolehlivě, a další přidávejte, až mu budete rozumět.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když míra pokrytí roste, ale počet odhalených chyb neroste, přestává být užitečná. Typický stav je, že testy pokrývají hlavně jednoduché cesty a zapomínají na chybové stavy. Další varovný signál: testy jsou křehké, padají při každé drobné změně a lidé je přestanou spravovat. Jakmile údržba testů zabere více času než psaní nového kódu, pokrytí škodí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pokrytí přestává být užitečné ve chvíli, kdy začneš psát testy kvůli číslu, ne kvůli riziku. Typický projev: testy volají funkci, zkontrolují, že nespadla, ale netvrdí nic o výsledku. Další častý případ je ignorování větví, které nelze snadno zasáhnout, takže se místo jejich otestování obalí podmínkou nebo se z kódu odstraní, aby číslo vypadalo lépe. Pokud se v týmu mluví o pokrytí častěji než o chybách, které testy odhalily, je metrika na špatné cestě.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Míra pokrytí testy se často bere jako ukazatel kvality. Jenže vysoké procento samo o sobě nic neznamená. Pokrytí říká pouze to, které řádky kódu testy prošly, ne jestli ověřují správné chování. Mnohem užitečnější je sledovat, jaké chyby vám testy reálně zachytí. Pokud po nasazení stejně nacházíte závady, které testy měly odhalit, je pokrytí jen číslo do reportu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si vezmete posledních deset chyb, které se dostaly do produkce. U každé zapište, proč ji testy nezachytily. Výsledkem bude seznam mezer: chybějící okrajové případy, špatně nastavená data, neošetřené chyby vstupů. Tento seznam je cennější než jakékoli procento. Z něj odvoďte nové testy, které skutečně selžou, když se chyba vrátí. Ověřte to tak, že test nejprve spustíte proti vadnému kódu a teprve pak proti opravenému.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je izolované prostředí. Nainstalujte Python a vytvořte virtuální prostředí příkazem python -m venv venv, poté ho aktivujte. Do něj pak instalujte pouze knihovny, které opravdu používáte. Pro práci se soubory a cestami stačí standardní moduly pathlib a shutil. Pro tabulky se hodí pandas, pro webové požadavky requests, pro plánování schedule nebo systémový plánovač úloh. Zbytečně nesbírejte desítky balíčků předem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Typické chyby: honit číslo místo chování, testovat jen šťastnou cestu, ignorovat chyby v datech a závislosti, nebo si myslet, že pokrytí nahradí ruční průzkumné testování. Také je chyba měřit pokrytí u kódu, který se často mění a brzy zmizí. U nestabilních částí systému je lepší investovat do lepšího návrhu než do testů, které za týden přestanou platit.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kdy je lepší ruční skript a kdy plnohodnotná automatizace Ruční skript se vyplatí pro jednorázové úkoly, které spustíte dnes a už nikdy. Napíšete pár řádků, zkontrolujete výsledek a hotovo. Automatizace má smysl, jakmile se úloha opakuje alespoň několikrát do měsíce, pracuje s velkým objemem dat nebo musí běžet v době, kdy u počítače nejste. Rozdíl je i v chybovosti: ruční přepisování čísel z jednoho souboru do druhého dřív nebo později skončí překlepem, zatímco skript udělá stejnou operaci pokaždé identicky.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jak nastavit rozumnou hranici Nesnažte se o sto procent. Stanovte si minimum pro kritické části, třeba zpracování plateb nebo přihlašování, a tam pokrytí hlídejte. Pro zbytek kódu se řiďte tím, zda test umí odhalit konkrétní chybu. Pomáhá i to, když testy píšete k novým funkcím ještě před jejich dokončením. U staršího kódu nezačínejte plošným dopisováním testů, ale tím, že při každé opravě přidáte test na danou chybu. Pokrytí pak roste přirozeně tam, kde to má smysl.&lt;/div&gt;</summary>
		<author><name>AhmadAguiar</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=U%C5%BCytkownik:AhmadAguiar&amp;diff=859339</id>
		<title>Użytkownik:AhmadAguiar</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=U%C5%BCytkownik:AhmadAguiar&amp;diff=859339"/>
		<updated>2026-10-01T17:27:49Z</updated>

		<summary type="html">&lt;p&gt;AhmadAguiar: Utworzono nową stronę &amp;quot;Autor blogu dílnou i obývákem se zabývá denně. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejraději ukazovat chytrá řešení, která zvládne každý.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu dílnou i obývákem se zabývá denně. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejraději ukazovat chytrá řešení, která zvládne každý.&lt;/div&gt;</summary>
		<author><name>AhmadAguiar</name></author>
	</entry>
</feed>