Redux a asynchronní akce: jak zjednodušit stav
Dalším častým problémem je nekonzistence mezi akcemi. Pokud máte tři různé akce pro načtení uživatele (REQUEST, SUCCESS, FAILURE), musíte ošetřit každou zvlášť. Místo toho použijte jeden reducer, který reaguje na typ akce a na základě přípony (_PENDING, _FULFILLED, _REJECTED) aktualizuje stav. Tím se vyhnete opakování logiky a snížíte riziko chyby. Například pomocí knihovny redux-thunk nebo redux-saga můžete vytvořit univerzální helper, který automaticky generuje typy akcí a přidává je barvy stěn do obýváku stavu.
Nezapomeňte, že obě technologie můžete kombinovat. Například REST pro veřejné vizuální stránky, GraphQL pro interní nástroje a mobilní appku. Klíčové je nepodléhat módním vlnám a vybrat nástroj podle reálných požadavků projektu. Testujte obě varianty na malém vzorku – změřte čas odezvy, velikost payloadu a náročnost údržby. Teprve pak se rozhodnete.
Konkrétní kroky, jak termín komunikovat Nejdřív si interně spočítejte, co všechno musí proběhnout. Rozdělte úkol na menší části a ke každé si přidejte časovou rezervu podle míry rizika. Když pak zákazníkovi řeknete ,,dodám do pátku", mějte v hlavě rezervu alespoň na dva dny navíc. Podstatné je také vysvětlit, odkud se číslo bere: ,,Potřebuji dvě kola kontroly, takže mi to dá celkem šest pracovních dnů." Tím získáte důvěru, protože nejde o pocit, ale o proces. Zároveň si ale dejte pozor na přílišné detaily, které by zbytečně zaměstnaly zákazníka – stačí mu vědět, že je termín promyšlený.
Při návrhu API narazíte na dvě hlavní cesty: REST a GraphQL. Každá má své silné stránky, ale i pasti. Místo abstraktních teorií se podívejme, kdy která volba dává smysl, na co si dát pozor a jaké chyby dělá většina týmů.
Když se řekne REST API, mnoho začínajících vývojářů si představí složité architektury a stovky řádků kódu. Ve skutečnosti ale s Node.js a frameworkem Express zvládnete funkční API za pár minut. Klíčové je pochopit principy: každá operace odpovídá HTTP metodě (GET, POST, PUT, DELETE) a každá adresa představuje konkrétní zdroj. Například seznam uživatelů bude dostupný na cestě /users, konkrétní uživatel pak na /users/1. Express vám poskytne elegantní router, který tyto cesty mapuje na funkce.
Na závěr si zvykněte na strukturu projektu. Nenechávejte byt v panelákušechny routy v jednom souboru. Rozdělte je podle zdrojů, použijte Express Router. Je to sice o pár řádcích navíc, ale když projekt naroste, budete si žehnat. A rozhodně si vytvořte jednoduché testy – třeba pomocí nástroje pro testování API. Otestujte si, že každý endpoint vrací správný status a tvar dat. Tím předejdete regresím, když budete kód upravovat. S těmito zásadami bude vaše REST API čisté, In the event you loved this article along with you wish to acquire more info regarding více o tom i implore you to go to our site. bezpečné a snadno udržovatelné.
Posledním tipem je psát si závazky do smlouvy nebo do e-mailu. Když máte termín černé na bílém, snáz se vám ho dodrží a vy se vyhnete dohadům. Ale pozor: smlouva by měla obsahovat i to, že termín je orientační a může se posunout v případě vyšší moci. Tím se chráníte, ale nezahazujete kredit. Vždy se snažte dodat dřív, než jste řekli, i kdyby to bylo jen o den. Zákazník pak vnímá, že jste spolehliví, a příště vám uvěří bez zbytečných otázek. Komunikace odhadu je totiž hlavně o budování důvěry – a ta se staví na upřímnosti, ne na planých slibech.
Mezi časté chyby patří ignorování limitů hloubky a šířky dotazu. Pokud nepovolíte maximální počet položek nebo neomezíte vnoření, může klient poslat obří dotaz, který zahltí server. V REST toto riziko nehrozí, protože každý endpoint má pevnou strukturu. Prakticky: v GraphQL vždy nastavte limity a použijte perzistentní dotazy (persisted queries), abyste měli kontrolu nad tím, co klienti skutečně volají.
Velkým kamenem úrazu je také práce s query parametry. Například GET /users?role=admin je naprosto v pořádku, ale mnoho začátečníků zapomíná, že parametry přicházejí jako řetězce. Pokud chcete číslo, musíte si ho převést a ošetřit případnou neplatnou hodnotu. Podobně pozor na bezpečnost: při psaní SQL dotazů vždy používejte parametrizované dotazy, nikdy nelepte hodnoty přímo do řetězce. Jinak se vystavujete riziku SQL injekce.
Kdy přejít na GraphQL a co si pohlídat GraphQL se vyplatí, když máte více klientů (mobilní aplikace, web, třetí strany) s odlišnými požadavky na data. Místo mnoha endpointů definujete schéma, a klient si specifikuje, co přesně potřebuje. To šetří přenos dat i počet requestů. Typický use case: dashboard, kde každá část zobrazuje jiné agregace. Začněte s nástrojem jako Apollo nebo Relay, ale nejdřív si rozvrhněte typy a vztahy – špatné schéma se později těžko mění. Pozor také na tzv. N+1 problém: bez optimalizace (např. DataLoader) může jeden dotaz vygenerovat desítky SQL dotazů.