5 praktických tipů pro čisté REST API v Node.js

From feywild

Výběr integrovaného vývojového prostředí (IDE) pro Python může na první pohled vypadat jako nevýznamné rozhodnutí. Stačí ale pár týdnů práce s nevhodným nástrojem a zjistíte, že ztrácíte čas na věcech, které by měly být automatické. Nejčastější chybou je sáhnout po prvním doporučeném editoru z internetu, aniž byste si ověřili, jak zvládá ladění, správu virtuálních prostředí nebo automatické doplňování kódu. Přitom právě tyto funkce rozhodují o tom, jestli budete psát plynule, nebo budete bojovat s každým druhým řádkem.

Osvojení těchto pěti funkcí vám ušetří hodiny ladění a zpřehlední projekty. Začněte postupně – nejdřív destructuring a spread v malých funkcích, pak přejděte k async/await a modulům. Kód, který napíšete s těmito nástroji, bude nejen modernější, ale hlavně robustnější a jednodušší na údržbu.

Druhá užitečná funkce je spread operátor (tři tečky). Umožňuje snadno kopírovat pole (`const copy = [...arr]`) nebo objekty (`const copyObj = ...obj `). Tím se vyhnete mutaci původních dat. Typická chyba je ale použití spreadu pro vnořené objekty – kopie je mělká, takže změna vnořené vlastnosti ovlivní i originál. Pro hlubokou kopii musíte sáhnout po strukturovaném klonu nebo si napsat vlastní rekurzivní řešení.

Na závěr jeden praktický detail: pokud používáte Express 4 a výše, mějte na paměti, že asynchronní chyby v middleware nejsou automaticky předány error handleru. Proto si vytvořte wrapper asyncHandler(fn), který funkci obalí a případnou chybu pošle do next(). Tento malý trik vám ušetří spoustu záhadných 500 chyb. Stejně tak se vyplatí odlišit vlastní chyby (např. NotFoundError) od neočekávaných – v error handleru pak můžete vracet správný HTTP status. Pokud začnete tyto postupy používat, API bude čitelnější, snadněji se udržuje a hlavně – frontend vývojáři vám poděkují.

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ě.

Než odešlete kód do produkce, projděte si kontrastní scénáře. Zkuste stránku zúžit na 320 pixelů a rozšířit na 1920 pixelů. Všimněte si, jestli se obsah nepřekrývá, nejsou vodorovné skrolly a mezery mezi prvky jsou konzistentní. Většina chyb pramení z kombinace pevných šířek a procent, proto používejte jednotky fr (u Gridu) a procenta či auto (u Flexboxu). Pokud si osvojíte pravidlo „Grid pro strukturu, Flexbox pro detaily", vyhnete se zbytečným konfliktům a vaše rozvržení bude srozumitelné a snadno udržovatelné.

Než začnete psát test, napište si na papír tři věci: co funkce dělá, jaké vstupy přijímá a co očekáváte, že vrátí. Tento postup odhalí nejasnosti v zadání dřív, než napíšete první řádek kódu. Pokud zjistíte, že funkce dělá pět věcí najednou, rozdělte ji na menší části. Test pak bude jednodušší a lépe odhalí, kde je chyba, když něco nefunguje.

Když testy spustíte, sledujte nejen, jestli projdou, ale také jak dlouho trvají. Unit testy by měly běžet v řádu milisekund. Pokud test trvá sekundy, pravděpodobně testujete příliš velkou jednotku nebo používáte externí služby. V takovém případě použijte testovací dvojníky – fake, stub nebo mock. Ty nahradí závislosti, jako je databáze nebo API, a umožní vám testovat jen samotnou logiku.

Během pohovoru se neptejte hned na plat nebo benefity. Zeptejte se na to, jak vypadá typický den vývojáře v týmu, jaké nástroje používají nebo jak probíhá code review. Pozor na častou chybu začátečníků: snaží se předstírat znalost něčeho, co neznají. Přiznání mezery a návrh, jak se ji naučíte, je mnohem lepší než mlhavé odpovědi. Pokud dostanete domácí úkol, věnujte pozornost nejen funkčnosti, ale i čitelnosti kódu a jednoduchým testům – to je to, co vás odliší.

Když stavíte REST API v Node.js s Expressem, první verze obvykle vznikne rychle. Později ale narazíte na problémy s validací, chybovými hláškami nebo správou stavů. Tento text se zaměřuje na konkrétní postupy, které vám ušetří čas při ladění i při rozšiřování aplikace. Nejde o teorii, ale o osvědčené vzorce, které můžete použít hned dnes.

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í.