<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.it-core.eu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EileenHutton</id>
	<title>IT-Core - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.it-core.eu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=EileenHutton"/>
	<link rel="alternate" type="text/html" href="https://www.it-core.eu/wiki/index.php?title=Special:Contributions/EileenHutton"/>
	<updated>2026-09-05T05:51:20Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.it-core.eu/wiki/index.php?title=5_z%C3%A1sad,_d%C3%ADky_kter%C3%BDm_v%C3%A1%C5%A1_API_dokument_p%C5%99e%C5%BEije_prvn%C3%AD_kontakt_s_frontendem&amp;diff=199250</id>
		<title>5 zásad, díky kterým váš API dokument přežije první kontakt s frontendem</title>
		<link rel="alternate" type="text/html" href="https://www.it-core.eu/wiki/index.php?title=5_z%C3%A1sad,_d%C3%ADky_kter%C3%BDm_v%C3%A1%C5%A1_API_dokument_p%C5%99e%C5%BEije_prvn%C3%AD_kontakt_s_frontendem&amp;diff=199250"/>
		<updated>2026-08-29T04:51:59Z</updated>

		<summary type="html">&lt;p&gt;EileenHutton: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Než začnete, ujasněte si, co od projektu vlastně potřebujete. B3du funguje nejlépe, když máte jasnou představu o výstupu. Pokud stříháte krátké video pro sociální sítě, bude vaše nastavení jiné než u celovečerního dokumentu. Rozdíl je v datové náročnosti, v počtu použitých stop i v tom, jak chcete s materiálem dál pracovat. Dejte si čas na rozvržení — právě tato fáze rozhoduje o tom, jestli vám nástroj usnadní práci, nebo naopak zkomplikuje život.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při návrhu REST API v prostředí Node.js stojíte před zásadním rozhodnutím: sáhnout po frameworku Express, nebo vystačit s čistým Node.js. Express je de facto standardem pro tvorbu API, ale jeho použití s sebou nese určité návyky, které mohou vést k nepřehlednému kódu. Na druhou stranu, čistý Node.js dává naprostou kontrolu, ale za cenu vyššího úsilí při implementaci běžných funkcí, jako je parsování těla požadavku nebo směrování.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základem je jednotné schéma odpovědí. Pokud každý endpoint vrací jinou strukturu – někdy objekt, jindy pole pod jiným klíčem – je to první zdroj chaosu. Domluvte se na  obalu, třeba na objektu s poli pro data, chybu a metadata. Tento obal pak používejte všude. Do dokumentace zapište, že každá úspěšná odpověď má tvar data: ... a každá chyba error: code, message . Frontend si pak napíše jednu univerzální funkci na zpracování odpovědí a nemusí řešit výjimky pro každý endpoint zvlášť.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Po čem poznáte, že je čas přidat integrační testy Přichází moment, kdy začnete měnit rozhraní mezi dvěma moduly a jednotkové testy obou stran projdou, ale aplikace jako celek se rozpadne. Nebo když přidáte novou databázovou migraci a stávající testy neověří, že se data správně ukládají a čtou. To jsou signály, že potřebujete integrační testy – testy, které spouští více komponent dohromady, typicky s reálnou databází, externím API nebo frontendem. Nejde o to je psát pro všechno, ale pro kritické cesty: přihlášení, platba, synchronizace dat, publikování zpráv.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr: dokumentaci berte jako živý nástroj, ne jako jednorázový úkol. Když narazíte na nejasnost, opravte ji hned, ne až za měsíc. A hlavně – ptejte se frontend vývojářů, co jim chybí. Oni jsou ti, kdo dokumentaci používají denně, a jejich zpě[https://App.photobucket.com/search?query=tn%C3%A1%20vazba tná vazba] je nejcennější. Dobře napsaná dokumentace není luxus, ale nutnost pro hladkou spolupráci – a výsledkem je méně bugů, rychlejší vývoj a klidnější tým.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prakticky doporučuji rozdělit testy do dvou vrstev podle rychlosti. Jednotkové testy spouštějte při každé změně kódu, měly by běžet pod deset sekund. Integrační testy zařaďte do samostatné fáze – ideálně při pushnutí do sdíleného repozitáře nebo v nočním běhu. Tím zajistíte, že vývojáři mají rychlou zpětnou vazbu při psaní kódu, ale zároveň se před nasazením ověří kritické scénáře. Důležité je, aby integrační testy byly deterministické – měly by běžet proti izolovanému prostředí, které je před každým během znovu vytvořeno.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při návrhu testů platí jednoduché pravidlo: nejdříve si odpovězte, co se může reálně rozbít. Pokud je riziko chyby v logice podmínek, použijte jednotkový test. Pokud je riziko v propojení s databází, souborovým systémem nebo cizí službou, integrační test je na místě. Typickou chybou je psát integrační test na všechno, co se dá, a pak trávit hodiny laděním prostředí. Druhým extrémem je jednotkové testy „nafukovat&amp;quot; tak, aby simulovaly vše, což vede k těžko udržovatelným mockům a testům, které neodrážejí realitu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Optimální poměr není statický. Na začátku projektu s malým rozsahem vám stačí 90 % jednotkových testů. Jakmile codebase roste a přibývají integrační body, poměr se postupně mění. Sledujte, kde vznikají chyby, které se dostanou až [https://www.blurb.com/user/lukaszlewand barvy stěn do obýváku] produkce. Pokud jsou to chyby v integraci, přidejte více integračních testů. Pokud jsou to logické chyby v jednotlivých metodách, posilte jednotkové. Testy jsou nástroj pro řízení rizik, ne cíl sám o sobě. Pravidelně revidujte, které testy skutečně zachytily chybu a které jen zabírají místo – ty nefunkční nebo redundantní bez váhání odstraňte.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když backend dodá rozhraní bez pořádné dokumentace, frontend vývojář stráví hodiny hádáním, co přesně endpoint přijímá a vrací. Výsledkem jsou zbytečné opravy, přepisování kódu a třecí plochy mezi týmy. Přitom stačí dodržet pár konkrétních pravidel, která práci s API změní z věštění na rutinu. Nejde o psaní románů, ale o strukturu, příklady a jasné definice – přesně to, co frontend potřebuje, aby mohl fungovat samostatně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kde nejčastěji pyramida padá a jak to napravit Nejčastější chybou je obrácená pyramida – když máte stovky end-to-end testů a jen pár jednotkových. Tým pak tráví více času opravováním testů než vývojem funkcí. Příčinou bývá snaha testovat všechno přes uživatelské rozhraní, protože „to je nejvěrnější obraz toho, co uživatel vidí&amp;quot;. Jenže takový přístup ignoruje, že každý end-to-end test je pomalý a náchylný k selhání kvůli načasování, animacím nebo změnám v rozvržení. Řešení není testy mazat, ale př[https://Www.Caringbridge.org/search?q=esunout esunout] většinu scénářů na nižší úrovně. Logiku, která se skrývá za formulářem, otestujte na úrovni jednotek nebo integrace. End-to-end testy si nechte jen na kritické cesty – přihlášení, platbu nebo registraci.&lt;/div&gt;</summary>
		<author><name>EileenHutton</name></author>
	</entry>
	<entry>
		<id>https://www.it-core.eu/wiki/index.php?title=Co_se_zm%C4%9Bn%C3%AD,_kdy%C5%BE_za%C4%8Dnete_ps%C3%A1t_TypeScript_m%C3%ADsto_JavaScriptu&amp;diff=199026</id>
		<title>Co se změní, když začnete psát TypeScript místo JavaScriptu</title>
		<link rel="alternate" type="text/html" href="https://www.it-core.eu/wiki/index.php?title=Co_se_zm%C4%9Bn%C3%AD,_kdy%C5%BE_za%C4%8Dnete_ps%C3%A1t_TypeScript_m%C3%ADsto_JavaScriptu&amp;diff=199026"/>
		<updated>2026-08-29T04:44:02Z</updated>

		<summary type="html">&lt;p&gt;EileenHutton: Created page with &amp;quot;Když codebase roste, testy se postupně stávají těžším balvanem, než by měly být. Jednotkové testy běží rychle, ale často jen potvrzují, že funkce dělá to, co už víte. Integrační testy zachytí problémy mezi komponentami, ale jejich spuštění trvá minuty a jejich údržba je nákladná. Pokud necháte poměr mezi nimi náhodě, brzy narazíte na situaci, kdy každá změna  čekání na výsledky a polovina selhání nemá s vaší úpravou nic...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Když codebase roste, testy se postupně stávají těžším balvanem, než by měly být. Jednotkové testy běží rychle, ale často jen potvrzují, že funkce dělá to, co už víte. Integrační testy zachytí problémy mezi komponentami, ale jejich spuštění trvá minuty a jejich údržba je nákladná. Pokud necháte poměr mezi nimi náhodě, brzy narazíte na situaci, kdy každá změna  čekání na výsledky a polovina selhání nemá s vaší úpravou nic společného.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Testování je nedílnou součástí vývoje, a pokud pracujete v Pythonu, pytest je jedním z nejpoužívanějších nástrojů. Na rozdíl od standardního unittestu nabízí jednodušší syntaxi, méně kódu a bohaté možnosti rozšíření. V tomto článku se zaměříme na praktické základy – od psaní prvních testů až po typické chyby, kterým se vyhnout.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;DevOps je často mylně chápán jako sada nástrojů nebo pozice, kterou obsadíte jedním specialistou. Ve skutečnosti jde o kulturu spolupráce mezi vývojem a provozem, která má za cíl zkrátit cyklus dodání software a zvýšit jeho stabilitu. Než začnete cokoli instalovat, pochopte, že DevOps začíná u lidí a procesů, ne u technologií. Bez změny přemýšlení vám žádná automatizace nepomůže a výsledkem bude jen drahý a nefunkční systém.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když už máte vybraný úkol, vytvořte si [http://Gm6699.com/home.php?mod=space&amp;amp;uid=3276386 vlastní] větev z aktuálního hlavního větvení. Než začnete psát kód, zkuste si projekt spustit lokálně. To je častý kámen úrazu — mnoho začátečníků skočí rovnou na editaci souborů, aniž by viděli, jak projekt funguje. Nastavení prostředí může trvat hodiny, ale je to nezbytná investice. Pokud narazíte na problém, hledejte řešení v dokumentaci projektu, nepište hned do chatu. Když už se zeptáte, buďte konkrétní: uveďte operační systém, verzi nástrojů a přesný výstup z příkazů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte instalací pytestu přes správce balíčků. Poté vytvořte soubor s názvem test_*.py nebo *_test.py, aby pytest testy automaticky našel. Jednotlivé testy jsou obyčejné funkce začínající slovem test_. Příklad:&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když přejdete z JavaScriptu na TypeScript, první rozdíl, který ucítíte, je typová kontrola v čase psaní kódu. Nemusíte psát žádné anotace, stačí přejmenovat soubor z .js na .ts a překladač začne odhalovat chyby, které byste jinak objevili až za běhu aplikace. Typová inference funguje spolehlivě u běžných konstrukcí, takže nemusíte psát typy u každé proměnné. Pokud ale pracujete s rozhraními API nebo s daty z formulářů, vyplatí se definovat rozhraní pomocí interface nebo type alias. Tím získáte dokumentaci přímo v kódu a překladač vás upozorní na nesoulad mezi očekávaným a skutečným tvarem dat.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Async akce přes mockované API – jak na to bez spuštěného serveru Async akce (thunky) jsou funkce, které dostávají dispatch a getState. Nejjednodušší cesta je vytvořit si v testu redux-mock-store, který zaznamenává dispatched akce a umožňuje vám ověřit, co se poslalo. Než začnete, nastavte si mock pro globální fetch nebo axios. Klíčové je nedělat skutečné HTTP requesty – místo toho vložte do testu fiktivní odpověď. Vytvořte si pomocnou funkci, která vytvoří thunk s konkrétním payloadem, a pak zavolejte store.dispatch s [https://Search.yahoo.com/search?p=t%C3%ADmto%20thunkem tímto thunkem]. Následně čekejte na vyřešení asynchronní operace – buď pomocí await, nebo pomocí waitFor, pokud máte knihovnu pro testování.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jakmile máte přehled, začněte s revizí podle kritičnosti. Vyberte pět až deset nejdůležitějších uživatelských scénářů (např. registrace, platba, přihlášení) a ujistěte se, že pro každý existuje integrační test, který projde celým systémem. Zbývající scénáře nechte na jednotkové úrovni. Tím získáte jistotu, že se nerozbije to podstatné, a zároveň nezahltíte pipeline testy, které běží desítky minut. Typická chyba je snažit se pokrýt integračními testy i okrajové případy – to patří do jednotkových testů, kde je můžete izolovat a rychle opakovat.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Při psaní kódu dodržujte styl, jaký projekt používá. Pokud má projekt linter nebo formátovač, spusťte ho před odesláním. Typická chyba je, že přispěvatel napíše funkční kód, který ale neodpovídá zvyklostem projektu — používá jiné uvozovky, jiné odsazení nebo pojmenování proměnných. To pak vede k vlně komentářů, které se týkají stylu, ne obsahu. Než odešlete pull request, znovu si projděte změny, spusťte testy a opravte všechny chyby. Pull request by měl být malý, srozumitelný a měl by obsahovat jen změny související s daným úkolem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr: testy reducerů a async akcí bez integračního prostředí jsou rychlejší a spolehlivější, ale vyžadují disciplínu v návrhu kódu. Pokud máte problém s mockováním API, zkuste oddělit čistou logiku od vedlejších efektů – vytvořte si funkci, která jen transformuje data, a thunk nechte jen na orchestrace. Tím se testy zjednoduší a vy se vyhnete nutnosti spouštět celou aplikaci. Pamatujte, že cílem není nahradit integrační testy, ale vytvořit si rychlou zpětnou vazbu pro běžný vývoj.&lt;/div&gt;</summary>
		<author><name>EileenHutton</name></author>
	</entry>
	<entry>
		<id>https://www.it-core.eu/wiki/index.php?title=JWT_tokeny,_kter%C3%A9_v%C3%A1m_uniknou:_nej%C4%8Dast%C4%9Bj%C5%A1%C3%AD_chyby_p%C5%99i_zabezpe%C4%8Den%C3%AD_API&amp;diff=198749</id>
		<title>JWT tokeny, které vám uniknou: nejčastější chyby při zabezpečení API</title>
		<link rel="alternate" type="text/html" href="https://www.it-core.eu/wiki/index.php?title=JWT_tokeny,_kter%C3%A9_v%C3%A1m_uniknou:_nej%C4%8Dast%C4%9Bj%C5%A1%C3%AD_chyby_p%C5%99i_zabezpe%C4%8Den%C3%AD_API&amp;diff=198749"/>
		<updated>2026-08-29T04:33:19Z</updated>

		<summary type="html">&lt;p&gt;EileenHutton: Created page with &amp;quot;Prvním krokem je vytvořit jednotný popis všech endpointů na jednom místě. Nejlépe ve formátu, který může backend rovnou generovat z kódu, a frontend si ho může stáhnout do svého vývojového prostředí. Vyhněte se ručně psaným dokumentům v textových editorech – ty rychle zastarávají a nikdo je neudržuje. Místo toho používejte nástroje, které popis API generují z anotací nebo z definic datových struktur. Díky tomu bude dokumentace vž...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Prvním krokem je vytvořit jednotný popis všech endpointů na jednom místě. Nejlépe ve formátu, který může backend rovnou generovat z kódu, a frontend si ho může stáhnout do svého vývojového prostředí. Vyhněte se ručně psaným dokumentům v textových editorech – ty rychle zastarávají a nikdo je neudržuje. Místo toho používejte nástroje, které popis API generují z anotací nebo z definic datových struktur. Díky tomu bude dokumentace vždy odpovídat skutečnému stavu aplikace, což je nejdůležitější podmínka pro to, aby jí lidé věřili a používali ji.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když frontend a backend spolupracují na jednom produktu, nejčastějším zdrojem nedorozumění bývá nejasná nebo neúplná dokumentace API. Bez ní vývojář rozhraní neví, jaká data přesně endpoint vrací, jaké datové typy použít nebo jak zpracovat chybové stavy. Výsledkem jsou zbytečné konzultace, přepisování kódu a prodlužování času potřebného na integraci. Klíčem k hladké spolupráci je dokumentace, která je živá, konkrétní a používá společné pojmy.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Druhý typický problém je příliš mnoho testů na stejné úrovni, ale s duplicitním pokrytím. Pokud máte integrační test, který ověřuje zápis do databáze, a zároveň end-to-end test, který dělá to samé přes API, jen plýtváte časem. Každá úroveň má jiný účel. Jednotkové testy chytají chyby v logice, integrační testy kontrolují, že spolu komponenty komunikují správně, a end-to-end testy ověřují, že uživatel projde aplikací bez zaváhání. Než napíšete nový test, zeptejte se: „Jakou chybu chci chytit?&amp;quot; Pokud odpověď je „nevím&amp;quot;, test je zbytečný.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec se vyplatí do dokumentace přidat i praktické interaktivní prostředí, kde si frontend může zavolat API přímo z prohlížeče. Nemusí to být nic složitého – stačí možnost zadat parametry a zobrazit odpověď. Až frontend narazí na nejasnost, místo psaní e-mailu si všechno vyzkouší sám. Taková dokumentace se stává nástrojem, ne přítěží. Pokud se navíc pravidelně kontroluje a aktualizuje při každé změně kódu, spolupráce se výrazně zrychlí a počet chyb klesne na minimum. Důležité je, aby dokumentaci vnímal jako svůj úkol celý tým, nejen backend.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Základní pravidlo je jednoduché: čím nižší úroveň testu, tím více jich má být. Na dně pyramidy leží jednotkové testy, které ověřují jednu funkci nebo metodu izolovaně. Měly by být rychlé (v řádu milisekund), deterministické a neměly by vyžadovat žádnou infrastrukturu. Nad nimi jsou integrační testy, které ověřují spolupráci více komponent – typicky práci s databází, externími službami nebo souborovým systémem. Těch by mělo být výrazně méně, ale stále dost na to, aby pokryly hlavní scénáře propojení. Na vrcholu jsou end-to-end testy, které procházejí celou aplikací přes uživatelské rozhraní. Těch je nejméně, protože jsou pomalé, křehké a jejich údržba stojí hodně času.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je správná volba algoritmu. Mnoho vývojářů sáhne po algoritmu HS256, protože je jednoduchý, ale vyžaduje sdílený tajný klíč mezi serverem a klientem. To je problém: jakmile klíč unikne, útočník může podepisovat vlastní tokeny. Bezpečnější je použít asymetrický algoritmus RS256 nebo ES256, kde máte privátní klíč pouze na serveru a veřejný klíč distribuujete klientům. Tím eliminujete riziko spojené s kompromitací tajemství. Pokud už ale používáte HS256, dbejte na to, aby klíč byl dostatečně dlouhý a náhodný – minimálně 32 bajtů, ideálně více.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další častou chybou je ignorování expirace tokenu. JWT obsahuje pole exp, ale pokud ho nenastavíte nebo nastavíte příliš dlouhou platnost, otevíráte dveře útočníkům, kteří ukradnou token a používají ho týdny. Nastavte expiraci na rozumnou dobu – obvykle 15 minut až několik hodin – a pro delší přístup použijte obnovovací tokeny, které mají vlastní životní cyklus a lze je bezpečně zneplatnit. Navíc vždy ověřujte nejen expiraci, ale i čas vydání (iat) a případně čas nepoužitelnosti (nbf), abyste zabránili použití tokenů, které ještě nebyly aktivovány.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kde nejčastěji pyramida padá a jak to napravit Nejčastější chybou je obrácená pyramida – když máte stovky end-to-end testů a jen pár jednotkových. Tým pak tráví více času opravováním testů než vývojem funkcí. Příčinou bývá snaha testovat všechno přes uživatelské rozhraní, protože „to je nejvěrnější obraz toho, co uživatel vidí&amp;quot;. Jenže takový přístup ignoruje, že každý end-to-end test je pomalý a náchylný k selhání kvůli načasování, animacím nebo změnám v rozvržení. Řešení není testy mazat, ale přesunout většinu scénářů na nižší úrovně. Logiku, která se skrývá za formulářem, otestujte na úrovni jednotek nebo integrace. End-to-end testy si nechte jen na kritické cesty – přihlášení, platbu nebo registraci.&lt;/div&gt;</summary>
		<author><name>EileenHutton</name></author>
	</entry>
	<entry>
		<id>https://www.it-core.eu/wiki/index.php?title=User:EileenHutton&amp;diff=198747</id>
		<title>User:EileenHutton</title>
		<link rel="alternate" type="text/html" href="https://www.it-core.eu/wiki/index.php?title=User:EileenHutton&amp;diff=198747"/>
		<updated>2026-08-29T04:33:14Z</updated>

		<summary type="html">&lt;p&gt;EileenHutton: Created page with &amp;quot;Váš průvodce světem interiérů žije už dlouho. Sdílím zde, jak zvládnout domácnost bez stresu. Nejvíc mě baví popisovat postupy krok za krokem.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Váš průvodce světem interiérů žije už dlouho. Sdílím zde, jak zvládnout domácnost bez stresu. Nejvíc mě baví popisovat postupy krok za krokem.&lt;/div&gt;</summary>
		<author><name>EileenHutton</name></author>
	</entry>
</feed>