5 praktických rad, kdy zvolit REST a kdy GraphQL

Při psaní testů se také vyplatí myslet na to, co přesně testujete. Pokud testujete funkci, která počítá cenu s DPH, netestujte zároveň i databázové spojení. To už je integrační test. Jednotkové testy mají být rychlé, izolované a bez vedlejších efektů. Pokud potřebujete testovat závislost na vnějším systému, použijte mock. Ale mockování má také své úskalí – pokud zamockujete příliš mnoho, test přestane testovat skutečnou logiku a začne testovat jen to, jak jste mock nastavili. Zamockujte jen to, co je nezbytně nutné, a zbytek nechte běžet reálně.<br> <br> <br> <br> První chybou, kterou u začínajících projektů vidím, je všechno nacpané do jednoho souboru. Express umožňuje rozdělit aplikaci na moduly, a to byste měli využít. Místo deseti route handlerů v jednom souboru si vytvořte samostatné soubory pro jednotlivé zdroje (například uživatele, produkty, objednávky). Každý soubor exportuje router, který pak připojíte k hlavní aplikaci. Tím získáte přehlednost a každý router můžete testovat samostatně. Nezapomeňte také na oddělení logiky od samotných route handlerů – validaci, práci s databází a byznys logiku držte v samostatných službách nebo middleware.<br> <br> <br> <br> Kromě techniky se připravte i na otázky o týmové spolupráci. Například: „Jak řešíte konflikt s kolegou?" nebo „Co uděláte, když nestíháte deadline?" Zde se vyhněte frázím typu „jsem týmový hráč" a místo toho popište konkrétní situaci z vaší zkušenosti – ze školy, brigády nebo vlastních projektů. Důležité je ukázat, že umíte komunikovat a že nejste uražliví, když někdo kritizuje váš kód.<br> <br> <br> <br> Čím se odlišit v technickém pohovoru Technický pohovor je často zkouška z logiky, ne z paměti. Očekávejte otázky na datové struktury, algoritmy a vysvětlení vašeho kódu. Typická past? Když začnete mluvit o složitých knihovnách, ale neumíte vysvětlit, proč jste je použili. Místo toho se připravte na jednoduché příklady – třeba reverzní řetězec nebo práce s polem – a nacvičte si, jak o nich přemýšlíte nahlas. Firmy hledají lidi, kteří se nezaseknou, ale hledají řešení.<br> <br> <br> <br> Pojďme si ukázat konkrétní případ. Máte funkci, která čte konfiguraci z globální proměnné. Napíšete test, který tuto proměnnou nastaví, a hned záhy test, který ji čte. První test projde, druhý selže, protože první test proměnnou nevrátil do původního stavu. Řešení? Použijte fixture s rozsahem function, která před každým testem nastaví výchozí hodnotu. A hlavně – nikdy neměňte globální stav napřímo v testovací funkci. Vždy to udělejte přes fixture, která se postará o úklid.<br> <br> <br> <br> <span style="font-weight: bolder;">Na závěr si shrňme</span> klíčové body: rozdělte aplikaci na moduly, validujte vstupy, centralizujte zpracování chyb a vyřešte asynchronní chyby. Těmito kroky získáte API, které se snadno udržuje, testuje a které vás nepřekvapí v produkci. Express je výkonný nástroj, ale jeho síla se projeví až tehdy, když jej používáte s disciplínou. Vyhnete se tak nejčastějším nástrahám, na které vývojáři narážejí, a vaše API bude připravené na další rozvoj.<br> <br> <br> <br> Než začnete posílat životopisy, udělejte si malý průzkum trhu. Otevřete si nabídky práce a zjistěte, jaké technologie se opakují. Pokud jste se učili JavaScript, ale většina inzerátů v okolí hledá Java nebo Python, zvažte, jestli se nepřeorientovat. Nejde o to umět vše, ale trefit se do poptávky. Zároveň si ověřte, co je v daném regionu standard – někde dominují velké korporace, jinde startupové týmy. Každé prostředí má jiná očekávání.<br> <br> <br> <br> <span style="font-weight: bolder;">Prvním kritériem je povaha</span> dat a jejich vztahů. Pokud máte hierarchická data nebo propojené entity, kde klient potřebuje různé podmnožiny polí, GraphQL vám ušetří spoustu práce. Klient si totiž požádá přesně o to, co potřebuje, a vy se nemusíte trápit s tvorbou desítek endpointů pro každou variantu. Typickým příkladem je mobilní aplikace, která potřebuje jen jméno a e-mail, zatímco webová verze chce i adresu a historii objednávek. S REST byste museli vytvořit dva endpointy nebo posílat zbytečně velká data.<br> <br> <br> <br> Další častá chyba se týká parametrizace. Mnoho lidí píše pro každou kombinaci vstupů zvlášť test, což vede k obrovskému množství duplicitního kódu. Místo toho použijte @pytest.mark.parametrize. Nejenže tím zkrátíte kód, ale také zpřehledníte, které kombinace selhávají. Ale pozor – parametrizace s mnoha případy může zpomalit běh. Pokud máte desítky kombinací, zvažte, jestli některé nejsou redundantní. A vždycky si pohlídejte, aby každý parametr měl čitelné ID, jinak se v hlášeních ztratíte.<br> <br> <br> <br> Když přichází na řadu export, většina problémů vzniká zbytečně. B3du umožňuje exportovat v mnoha formátech, ale ne všechny jsou vhodné pro každý účel. Pokud chcete video sdílet online, zvolte standardní formát, který je kompatibilní s většinou přehrávačů. Pokud ho chcete dál upravovat v jiném programu, vyberte bezztrátový kodek. Zde platí jednoduché pravidlo: méně komprese na začátku znamená více kvality na konci. A když si nejste jistí, vyzkoušejte export na krátkém úseku — uvidíte, jak se výsledek chová, a nebudete muset čekat hodiny.