Začněte tím, že si rozdě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 nezachytí.<br>
<br>
<br>
<br>
Při návrhu API často stojíte před volbou mezi REST a GraphQL. Oba přístupy mají svá specifika, ale rozhodování nemusí být složité, pokud víte, na co se zaměřit. Základní rozdíl je v tom, že REST pracuje s více endpointy a pevně definovanými strukturami odpovědí, zatímco GraphQL nabízí jediný endpoint a dotaz, který si klient sám poskládá. To ale neznamená, že je GraphQL vždy lepší – naopak, pro řadu projektů je REST stále jasnou volbou.<br>
<br>
<br>
<br>
Jak se vyhnout typickým chybám při výběru Nejčastější chybou je přizpůsobovat architekturu API tomu, co je zrovna v kurzu. Pokud ale potřebujete jednoduché CRUD operace, GraphQL vám přinese spoustu zbytečné režie. Musíte řešit schémata, resolvery, validace a navíc se potýkáte s problémy, jako je N+1 dotazů nebo složité cachování. Naopak pokud potřebujete složitější dotazy s propojenými daty a rychlým vývojem na straně klienta, REST vás donutí psát hodně vlastní logiky a endpointy se vám přemnoží.<br>
<br>
<br>
<br>
Flexbox využijte pro distribuci prostoru v rámci jednoho řádku. Klasickým příkladem je hlavička s logem a navigací. Naboďte kontejneru display: flex; a pomocí justify-content: space-between rozmístěte prvky od kraje ke kraji. Pro vertikální centrování použijte align-items: center;. Flexbox vyniká v tom, že prvkům umožňuje měnit velikost na základě dostupného místa – flex: 1 1 auto; způsobí, že se prvky rovnoměrně roztáhnou. Ale nenechte se unést: příliš mnoho flex vlastností v jednom kontejneru vede k nepředvídatelnému chování na malých obrazovkách, proto testujte na skutečných zařízeních.<br>
<br>
<br>
<br>
K nezanedbatelným návykům patří i psaní komentářů. Komentáře by neměly popisovat to, co je vidět z kódu, ale vysvětlovat proč. Například proč je potřeba zpoždění, jaká obchodní pravidla se uplatňují, nebo proč je použita neobvyklá implementace. Vyhněte se komentářům typu // přičteme 1 nad řádkem count += 1; – to jenom zašumuje. Lepší je napsat // Zahrneme i počáteční hodnotu nuly.<br>
<br>
<br>
<br>
Jaké konkrétní povinnosti licence ukládá uživatelům? Každá licence s sebou nese povinnosti, které musíte zvládnout vysvětlit. U GPL je to především povinnost poskytnout zdrojový kód, pokud software distribuujete. U LGPL se tato povinnost týká pouze upravených knihoven, nikoliv celé aplikace, která je používá. Permisivní licence zase vyžadují zachování copyrightové hlavičky a často i vyloučení odpovědnosti. Před výběrem si proto zjistěte, jaké jsou přesné podmínky dané verze. Licence se vyvíjejí – verze 2 a 3 GPL se liší v detailech, které mohou být pro váš projekt zásadní.<br>
<br>
<br>
<br>
Nakonec si nastavte proces pro hlášení chyb. Každý nález by měl obsahovat kroky k reprodukci, očekávané a skutečné chování, verzi aplikace a zařízení, na kterém se chyba vyskytla. Bez těchto údajů je oprava zbytečně pomalá. Testování mobilních aplikací není jen o klikání na obrazovku, ale o systematickém přístupu, který kombinuje automatizaci, reálná zařízení a správné priority. Pokud toto dodržíte, ušetříte si spoustu času a nervů při vydávání nové verze.<br>
<br>
<br>
<br>
Na závěr – nezapomínejte na formátování. Konzistentní odsazení, mezery a používání středníků (nebo jejich důsledné vynechávání) usnadňuje čtení. I když to zní banálně, právě nekonzistence ve stylu často vede k tomu, že se v kódu ztrácíte. Využijte nástroje jako ESLint nebo Prettier, které vás udrží v zajetých kolejích. A hlavně: pravidelně provádějte code review. Čerstvý pohled kolegy odhalí to, co vám už přijde samozřejmé. Čistý kód není výsledek jednorázového úsilí, ale dlouhodobý návyk, který vám ušetří hodiny hledání chyb.<br>
<br>
<br>
<br>
Začněte s Gridem pro hlavní layout. Definujte si kontejner s display: grid; a pomocí grid-template-columns určete sloupce. Například grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); vytvoří pružné sloupce, které se automaticky přizpůsobí šířce obrazovky. Na menších displejích se počet sloupců sníží, ale prvky se nerozsypou. Tento zápis funguje bez media queries, což zjednodušuje údržbu. Pozor na to, aby obsah v buňkách Gridu nepřetékal – vždy definujte min-width: 0 u potomků, jinak riskujete horizontální scrollování.<br>
<br>
<br>
<br>
Při testování responzivity si všímejte chování při zlomových bodech. Grid s grid-template-columns bez media queries se chová plynule, ale pokud potřebujete změnit pořadí prvků (například na mobilu zobrazit sidebar pod hlavním obsahem), využijte grid-template-areas a v media query přiřaďte jiné oblasti. U Flexboxu zase ověřte, že flex-wrap: wrap funguje tak, jak očekáváte – často se stane, že prvky se zalamují neočekávaně, protože zapomenete nastavit flex-basis. Vždy definujte minimální šířku nebo základ, aby se prvky chovaly předvídatelně.