<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.rettungsdienstblog.eu/index.php?action=history&amp;feed=atom&amp;title=Kdy_m%C4%9B%C5%99en%C3%AD_pokryt%C3%AD_testy_p%C5%99estane_p%C5%99in%C3%A1%C5%A1et_u%C5%BEitek</id>
	<title>Kdy měření pokrytí testy přestane přinášet užitek - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rettungsdienstblog.eu/index.php?action=history&amp;feed=atom&amp;title=Kdy_m%C4%9B%C5%99en%C3%AD_pokryt%C3%AD_testy_p%C5%99estane_p%C5%99in%C3%A1%C5%A1et_u%C5%BEitek"/>
	<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Kdy_m%C4%9B%C5%99en%C3%AD_pokryt%C3%AD_testy_p%C5%99estane_p%C5%99in%C3%A1%C5%A1et_u%C5%BEitek&amp;action=history"/>
	<updated>2026-10-10T15:03:15Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Rettungsdienst-Wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Kdy_m%C4%9B%C5%99en%C3%AD_pokryt%C3%AD_testy_p%C5%99estane_p%C5%99in%C3%A1%C5%A1et_u%C5%BEitek&amp;diff=402315&amp;oldid=prev</id>
		<title>MelinaBillington am 1. Oktober 2026 um 20:20 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Kdy_m%C4%9B%C5%99en%C3%AD_pokryt%C3%AD_testy_p%C5%99estane_p%C5%99in%C3%A1%C5%A1et_u%C5%BEitek&amp;diff=402315&amp;oldid=prev"/>
		<updated>2026-10-01T20:20:20Z</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;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 1. Oktober 2026, 20:20 Uhr&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;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 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;Základem je ověřit podpis přesně tím algoritmem&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který očekáváte. Nikdy nenechávejte knihovnu, aby si algoritmus vybrala podle hlavičky alg z tokenu&lt;/del&gt;. Pokud &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aplikace podporuje HS256 i RS256&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;musíte dopředu rozhodnout&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který použijete&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a ostatní odmítnout&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zvlášť nebezpečná &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kombinace, kdy &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;veřejný klíč z RS256 dá podstrčit jako HMAC secret&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vždy porovnávejte iss&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;aud a exp; token &lt;/del&gt;bez &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;expirace &lt;/del&gt;je jen &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;trvalý přístupový klíč v cizích rukou&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;Největší problém nastává u dynamických částí dotazu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které nelze parametrizovat: názvy tabulek, sloupců, směr řazení nebo klauzule LIMIT. Tady parametrizace nefunguje &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;je potřeba použít whitelist&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Uživatel nesmí poslat název sloupce přímo&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Aplikace má mít předem daný seznam povolených hodnot &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;z něj vybrat&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Totéž platí pro směr řazení: hodnota musí být buď vzestupně&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nebo sestupně&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nic jiného se nepřijímá&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud se whitelist vynechá &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nahradí se kontrolou pomocí regulárního výrazu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;útočník často najde cestu, jak filtr obejít&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;Měření pokrytí testy vypadá jako jednoduché číslo&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které na první pohled říká&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak dobře je kód otestovaný&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jenže číslo samo o sobě nic neznamená. Rozhoduje&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;do něj započítává, jakým &lt;/del&gt;nástrojem &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ho měříš a jestli ho používáš jako zpětnou vazbu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nebo jako cíl. Pokud se z metriky stane cíl&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;začne &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kód přizpůsobovat metrice místo tomu, aby testy odhalovaly chyby&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;Začni názvy. Proměnná data&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;temp nebo x neříká nic&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Místo d napiš datumObjednavky&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;místo arr klidně seznamKurzu&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;U funkcí používej sloveso&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;spocitejCenu()&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nactiUzivatele()&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud název potřebuje komentář&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;je pravděpodobně špatný&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Boolean pojmenuj jako tvrzení: jePrihlasen, maOpravneni, ne flag&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;Dávejte pozor na min-width: auto, které &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;u grid a flex položek výchozí&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Obsah&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který se nevejde – dlouhé slovo, tabulka, obrázek – položku roztáhne a způsobí vodorovné posouvání&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Řešením &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;min&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;width: 0 na položce a overflow&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wrap: anywhere na textu&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stejně častá chyba je pevná výška &lt;/del&gt;u &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;flex kontejneru&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Výška se má odvozovat od obsahu, jinak se prvky překrývají &lt;/del&gt;nebo &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;se ořezávají&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;Nepoužívejte media queries pro každou změnu velikosti&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud rozvržení zvládne samo přecházet pomocí auto-fit&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;minmax a flex-wrap&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nemusíte psát žádný breakpoint&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Media queries nechte &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;skutečné změny uspořádání&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne na drobné úpravy mezer&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Výsledkem &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;méně kódu, méně výjimek a rozvržení, které funguje i na zařízeních, která jste netestovali&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;JWT tokeny se nasazují jako univerzální řešení autentizace&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale bez správně nastavené validace se z nich stává &lt;/del&gt;jen &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;podepsaný kus textu, kterému server slepě věří&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nejčastější chyba není v algoritmu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nýbrž v tom&lt;/del&gt;, že se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;token dekóduje &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jeho obsah &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;použije bez ověření podpisu a všech povinných polí&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Útočník pak může změnit sub nebo role a dostat &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tam&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kam nemá&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;Obrázky a média vkládejte s max-width&lt;/del&gt;: &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;100% &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;height: auto&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;U gridu &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vyhněte pevným grid-template-columns: 1fr 1fr 1fr bez ohledu na obsah; lepší &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;repeat(auto-fit&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;minmax(...)). Mezery definujte přes gap&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne přes marginy na dětech – margin u posledního prvku v řadě vytváří nevyvážené okraje&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Testujte nejen šířky, ale i zvětšené písmo &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dlouhé české názvy, které se snadno vylijí z tlačítek&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;Dalším krokem je zvyknout si &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;větev&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hlavní větev by měla zůstat stabilní &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nasaditelná&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro každou novou funkci nebo opravu si vytvořte samostatnou vedlejší větev. Tím izolujete rozpracovanou práci a zabráníte tomu&lt;/del&gt;, aby se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozbitý kód dostal do produkce&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Až &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;změna hotová &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;otestovaná, sloučíte ji zpět do hlavní větve&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;Od čeho se odpíchnout v praxi Nejprve si nainstalujte nástroj příkazové řádky&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který budete používat&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Většina vývojářů volí Git&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale principy jsou podobné i u jiných systémů. Vytvořte &lt;/del&gt;v &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kořeni projektu nový repozitář &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nastavte si jméno a e&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mail&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které se budou zapisovat do historie&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Poté přidejte soubory&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které chcete sledovat&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a vytvořte první revizi&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;Responzivní design nezačíná u media queries&lt;/del&gt;, ale &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;u volby správného nástroje pro rozvržení. CSS Grid a Flexbox nejsou konkurenty&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které je třeba si vybrat jednou provždy&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Grid řeší dvourozměrné uspořádání – řádky i sloupce současně. Flexbox řeší jednorozměrné uspořádání – obsah v jedné linii nebo sloupci. Pokud tuto hranici respektujete, přestanete psát zbytečné opravy &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozvržení se bude lámat předvídatelně&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pozor na soubory&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které do repozitáře nepatří. Konfigurační soubory s hesly&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lokální nastavení prostředí&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;složky s dočasnými soubory nebo závislostmi by měly být vynechány pomocí speciálního seznamu&lt;/del&gt;. Pokud &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;je omylem přidáte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zůstanou v historii navždy &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jejich odstranění je pracné. Stejně tak nikdy necommitujte velké binární soubory, jako jsou videa nebo obrázky ve vysokém rozlišení, pokud to není nutné&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;Na závěr: nehledej dokonalý jazyk&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hledej první dokončenou věc&lt;/ins&gt;. Pokud &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;váháš mezi dvěma&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vyber ten&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;u kterého dřív uvidíš výsledek na obrazovce. Jazyk se časem naučíš jiný&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale schopnost dotáhnout projekt do konce je přenositelná bez ohledu na syntaxi.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Vyhni se dvěma častým chybám&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;První &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;učení &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pěti jazyků současně&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mozek potřebuje jeden vzor zopakovat mnohokrát&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;než ho zautomatizuje. Druhá chyba je sledovat videa &lt;/ins&gt;bez &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;psaní kódu. Programování &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pohybová dovednost podobná hře na nástroj: dokud nepíšeš, neumíš to. Stanov si pravidlo, že každou lekci přepíšeš vlastními slovy do malého programu, i kdyby měl &lt;/ins&gt;jen &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;deset řádků&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;TypeScript tedy není otázka módy&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale velikosti &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;životnosti kódu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Malý nástroj zvládnete bez něj&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Větší aplikace s více vývojáři a delší životností ocení, že chyby vidíte dřív &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;rozhraní jsou popsaná&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozhodující není&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zda typy používáte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale zda je používáte poctivě&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jakmile začnete obcházet kontrolu přes „any&amp;quot; &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tvrzení typů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přestává mít nástroj smysl a zůstane jen pomalejší zápis&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;Na závěr: verzování není o složitých příkazech&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale o návyku. Commitovat po malých krocích&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kontrolovat stav přes git status a nikdy nespouštět destruktivní příkazy bez rozmyšlení&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když si osvojíte těchto pár zásad&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přestane být Git hrozbou a stane &lt;/ins&gt;se nástrojem, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který vás podrží&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;když &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;něco pokazí&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;Větev main není posvátná&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale její přepsání bolí Většina začátečníků pracuje přímo na větvi main&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To není zakázané&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale při experimentu je snadné vytvořit zmatek&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vytvořte si novou větev&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;git switch -c pokus. Pracujte na ní&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;commitněte a teprve potom ji slučte zpět příkazem git switch main a git merge pokus&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když experiment selže&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stačí se vrátit na main a větev smazat: git branch -d pokus&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tím se vyhnete přepisování funkční historie a zbytečnému panikaření&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;Nejčastější chyba &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;git commit bez předchozího git add&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Výsledkem je prázdný commit nebo zpráva&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že nejsou žádné změny&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Další častá past &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;git reset &lt;/ins&gt;--&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hard. Tento příkaz nevratně zahodí necommitnuté změny&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud ho omylem spustíte, Git vám sice může pomoci přes git reflog, ale pouze &lt;/ins&gt;u &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;commitů, které už existovaly. Neuložené soubory jsou v nenávratnu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Před každým tvrdým resetem si udělejte záložní kopii složky &lt;/ins&gt;nebo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;změny nejprve commitněte&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;Důležitější než jazyk je projekt, který tě bude trochu bolet&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Až zvládneš základy, postav něco, co skutečně použiješ: převodník souborů&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednoduchý rozpočet&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hru s jedním ovládacím prvkem. Hotový malý projekt naučí víc než tři dokončené kurzy&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Teprve když narazíš &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hranice jazyka&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;má smysl učit se druhý&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Do té doby &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přepínání jen útěk od nevyhnutelné praxe&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;Komunikujte v intervalech&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne &lt;/ins&gt;jen &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;na konci&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Krátká zpráva&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že odhad platí&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nebo &lt;/ins&gt;že se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mění, má větší hodnotu než ticho. Pokud se odhad posouvá, řekněte to hned, jak to víte, a přidejte důvod &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nový odhad. Klient nesnáší překvapení víc než zpoždění. Když &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ozvete sami, berete kontrolu nad situací&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Když &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ozve on&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ztrácíte ji&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;Nejprve si odpověz na jednu konkrétní otázku&lt;/ins&gt;: &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co chceš do tří měsíců vytvořit? Webovou stránku, skript pro zpracování dat, hru, nebo automatizaci opakujících se úkolů? Odpověď výrazně zúží výběr. Pro web &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interaktivní stránky se přirozeně nabízí JavaScript&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro analýzu dat, automatizaci a práci &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;soubory &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vhodný Python. Pro pochopení toho&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jak počítač skutečně pracuje&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;poslouží C&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pro rychlé prototypy &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;menší nástroje zase Ruby nebo Go&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;Před schůzkou pošlete krátkou otázku, &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kterou má každý odpovědět písemně&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stačí tři body: co fungovalo, co brzdilo &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co bych příště udělal jinak&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Odpovědi se nesdílejí dopředu&lt;/ins&gt;, aby se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nikdo neopičil po nejhlasitějším&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Na začátku retrospektivy &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;všechny vystavíte vedle sebe &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;teprve pak se o nich mluví. Tím se přirozeně vyrovná prostor a tišší členové týmu mají stejnou váhu jako extroverti&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;Git ukládá historii projektu jako sérii snímků. Každý snímek vznikne tak&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že označíte změny příkazem git add a uložíte je příkazem git commit -m &amp;quot;popis&amp;quot;. Tento commit je pak dohledatelný podle jedinečného hashe&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud ho neuděláte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;změny zůstanou jen &lt;/ins&gt;v &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pracovním adresáři &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;při přepnutí větve nebo neopatrném příkazu git checkout -&lt;/ins&gt;- &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. zmizí bez varování. Proto platí: když dokončíte logický celek&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;commitněte&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Ne za hodinu&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne večer&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale hned&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;Výběr prvního programovacího jazyka není otázkou prestiže&lt;/ins&gt;, ale &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;toho&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co chceš skutečně dělat&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Každý jazyk má své místo &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;žádný není univerzálně nejlepší&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozhoduje cíl&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;čas&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který máš k dispozici&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a ochota překonávat první neúspěchy&lt;/ins&gt;. Pokud &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;začneš bez cíle&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;skončíš s pěti otevřenými tutoriály &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nulovým projektem&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>MelinaBillington</name></author>
	</entry>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Kdy_m%C4%9B%C5%99en%C3%AD_pokryt%C3%AD_testy_p%C5%99estane_p%C5%99in%C3%A1%C5%A1et_u%C5%BEitek&amp;diff=401786&amp;oldid=prev</id>
		<title>RonFlg19612849: Die Seite wurde neu angelegt: „Základem je ověřit podpis přesně tím algoritmem, který očekáváte. Nikdy nenechávejte knihovnu, aby si algoritmus vybrala podle hlavičky alg z tokenu. Pokud aplikace podporuje HS256 i RS256, musíte dopředu rozhodnout, který použijete, a ostatní odmítnout. Zvlášť nebezpečná je kombinace, kdy se veřejný klíč z RS256 dá podstrčit jako HMAC secret. Vždy porovnávejte iss, aud a exp; token bez expirace je jen trvalý přístupový…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Kdy_m%C4%9B%C5%99en%C3%AD_pokryt%C3%AD_testy_p%C5%99estane_p%C5%99in%C3%A1%C5%A1et_u%C5%BEitek&amp;diff=401786&amp;oldid=prev"/>
		<updated>2026-10-01T19:37:30Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „Základem je ověřit podpis přesně tím algoritmem, který očekáváte. Nikdy nenechávejte knihovnu, aby si algoritmus vybrala podle hlavičky alg z tokenu. Pokud aplikace podporuje HS256 i RS256, musíte dopředu rozhodnout, který použijete, a ostatní odmítnout. Zvlášť nebezpečná je kombinace, kdy se veřejný klíč z RS256 dá podstrčit jako HMAC secret. Vždy porovnávejte iss, aud a exp; token bez expirace je jen trvalý přístupový…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Základem je ověřit podpis přesně tím algoritmem, který očekáváte. Nikdy nenechávejte knihovnu, aby si algoritmus vybrala podle hlavičky alg z tokenu. Pokud aplikace podporuje HS256 i RS256, musíte dopředu rozhodnout, který použijete, a ostatní odmítnout. Zvlášť nebezpečná je kombinace, kdy se veřejný klíč z RS256 dá podstrčit jako HMAC secret. Vždy porovnávejte iss, aud a exp; token bez expirace je jen trvalý přístupový klíč v cizích rukou.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Největší problém nastává u dynamických částí dotazu, které nelze parametrizovat: názvy tabulek, sloupců, směr řazení nebo klauzule LIMIT. Tady parametrizace nefunguje a je potřeba použít whitelist. Uživatel nesmí poslat název sloupce přímo. Aplikace má mít předem daný seznam povolených hodnot a z něj vybrat. Totéž platí pro směr řazení: hodnota musí být buď vzestupně, nebo sestupně, nic jiného se nepřijímá. Pokud se whitelist vynechá a nahradí se kontrolou pomocí regulárního výrazu, útočník často najde cestu, jak filtr obejít.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Měření pokrytí testy vypadá jako jednoduché číslo, které na první pohled říká, jak dobře je kód otestovaný. Jenže číslo samo o sobě nic neznamená. Rozhoduje, co se do něj započítává, jakým nástrojem ho měříš a jestli ho používáš jako zpětnou vazbu, nebo jako cíl. Pokud se z metriky stane cíl, začne se kód přizpůsobovat metrice místo tomu, aby testy odhalovaly chyby.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začni názvy. Proměnná data, temp nebo x neříká nic. Místo d napiš datumObjednavky, místo arr klidně seznamKurzu. U funkcí používej sloveso: spocitejCenu(), nactiUzivatele(). Pokud název potřebuje komentář, je pravděpodobně špatný. Boolean pojmenuj jako tvrzení: jePrihlasen, maOpravneni, ne flag.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Dávejte pozor na min-width: auto, které je u grid a flex položek výchozí. Obsah, který se nevejde – dlouhé slovo, tabulka, obrázek – položku roztáhne a způsobí vodorovné posouvání. Řešením je min-width: 0 na položce a overflow-wrap: anywhere na textu. Stejně častá chyba je pevná výška u flex kontejneru. Výška se má odvozovat od obsahu, jinak se prvky překrývají nebo se ořezávají.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nepoužívejte media queries pro každou změnu velikosti. Pokud rozvržení zvládne samo přecházet pomocí auto-fit, minmax a flex-wrap, nemusíte psát žádný breakpoint. Media queries nechte na skutečné změny uspořádání, ne na drobné úpravy mezer. Výsledkem je méně kódu, méně výjimek a rozvržení, které funguje i na zařízeních, která jste netestovali.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;JWT tokeny se nasazují jako univerzální řešení autentizace, ale bez správně nastavené validace se z nich stává jen podepsaný kus textu, kterému server slepě věří. Nejčastější chyba není v algoritmu, nýbrž v tom, že se token dekóduje a jeho obsah se použije bez ověření podpisu a všech povinných polí. Útočník pak může změnit sub nebo role a dostat se tam, kam nemá.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Obrázky a média vkládejte s max-width: 100% a height: auto. U gridu se vyhněte pevným grid-template-columns: 1fr 1fr 1fr bez ohledu na obsah; lepší je repeat(auto-fit, minmax(...)). Mezery definujte přes gap, ne přes marginy na dětech – margin u posledního prvku v řadě vytváří nevyvážené okraje. Testujte nejen šířky, ale i zvětšené písmo a dlouhé české názvy, které se snadno vylijí z tlačítek.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Dalším krokem je zvyknout si na větev. Hlavní větev by měla zůstat stabilní a nasaditelná. Pro každou novou funkci nebo opravu si vytvořte samostatnou vedlejší větev. Tím izolujete rozpracovanou práci a zabráníte tomu, aby se rozbitý kód dostal do produkce. Až je změna hotová a otestovaná, sloučíte ji zpět do hlavní větve.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Od čeho se odpíchnout v praxi Nejprve si nainstalujte nástroj příkazové řádky, který budete používat. Většina vývojářů volí Git, ale principy jsou podobné i u jiných systémů. Vytvořte v kořeni projektu nový repozitář a nastavte si jméno a e-mail, které se budou zapisovat do historie. Poté přidejte soubory, které chcete sledovat, a vytvořte první revizi.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Responzivní design nezačíná u media queries, ale u volby správného nástroje pro rozvržení. CSS Grid a Flexbox nejsou konkurenty, které je třeba si vybrat jednou provždy. Grid řeší dvourozměrné uspořádání – řádky i sloupce současně. Flexbox řeší jednorozměrné uspořádání – obsah v jedné linii nebo sloupci. Pokud tuto hranici respektujete, přestanete psát zbytečné opravy a rozvržení se bude lámat předvídatelně.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pozor na soubory, které do repozitáře nepatří. Konfigurační soubory s hesly, lokální nastavení prostředí, složky s dočasnými soubory nebo závislostmi by měly být vynechány pomocí speciálního seznamu. Pokud je omylem přidáte, zůstanou v historii navždy a jejich odstranění je pracné. Stejně tak nikdy necommitujte velké binární soubory, jako jsou videa nebo obrázky ve vysokém rozlišení, pokud to není nutné.&lt;/div&gt;</summary>
		<author><name>RonFlg19612849</name></author>
	</entry>
</feed>