Co se stane, když zvolíte REST místo GraphQL a naopak

Janelle 26-08-30 02:58 2 0

GraphQL řeší právě problém nadbytečných dat. Klient si požádá přesně o to, co potřebuje, a server vrátí jen to. Když například potřebujete zobrazit jméno uživatele a počet jeho objednávek, jedno dotazovací pole nahradí dvě volání RESTu. Typická chyba začátečníků je ale návrh resolverů bez ohledu na N+1 problém – každý dotaz na seznam může znamenat desítky drobných dotazů do databáze. Pokud to neřešíte nástroji jako DataLoader, výkon se propadne. Další pastí je absence striktního verzování: zatímco u RESTu přidáte /v2/, u GraphQL musíte pečlivě plánovat evoluci schématu, abyste neporušili existující klienty.

Začněme destructuringem, tedy destrukturalizací přiřazení. Místo ručního kopírování hodnot z objektu do proměnných můžete napsat const name, age = user;. To platí i pro pole: const [first, second] = array;. Pozor na výchozí hodnoty – pokud vlastnost neexistuje, dostanete undefined. Použijte const name = 'Neznámý' = user;. Typická chyba: destructuring vnořených objektů bez kontroly existence, což vede k chybě Cannot read property.

Typická chyba začátečníků je ignorování stránkování. Pokud API vrací seznam položek, obvykle jich je maximum na stránku. Musíte procházet další stránky pomocí parametrů nebo odkazů v odpovědi. Druhým častým problémem je neošetřená změna formátu dat – API se může změnit, proto si v kódu ověřte, že daná položka existuje. A hlavně: neukládejte si celou odpověď do paměti, pokud pracujete s velkými objemy dat. Zpracovávejte je po částech.

Při psaní prvního kódu začněte s knihovnou, která API obaluje, pokud existuje. Ušetříte si práci s ručním sestavováním URL a zpracováním JSON. Pokud taková knihovna není, použijte standardní HTTP klienta. Důležité je nastavit časový limit – pokud API neodpoví do několika sekund, spojení se přeruší a vy se vyhnete zamrznutí programu. Odpověď vždy zpracujte jako strukturu, ne jako prostý řetězec – usnadní to přístup k datům.

Dalším častým problémem je používání reálných databází nebo souborů. Test by měl běžet rychle a bez vnějších závislostí. Pokud testujete třídu, která pracuje s databází, vytvořte si falešný repozitář vracející předem připravená data. NUnit umožňuje použít atribut [SetUp] pro inicializaci před každým testem, ale dávejte pozor, abyste v něm nedělali drahé operace, jako je startování serveru. To patří do [OneTimeSetUp] a jen tehdy, pokud to opravdu potřebujete.

REST API je ideální, když máte stabilní, dobře definované zdroje – třeba uživatele, objednávky nebo články. Využijete ho naplno, pokud klient potřebuje vždy kompletní reprezentaci dané entity. Typický příklad: veřejné API pro třetí strany. Tady oceníte jednoduchou adresaci, snadné testování pomocí běžných nástrojů a přirozenou podporu HTTP metod. Naopak pokud vaše aplikace vyžaduje složená data z více entit najednou, začnete řetězit volání a každé z nich s sebou nese režii. Roste latence a spotřeba dat, což se projeví zejména u mobilních klientů s omezeným připojením.

Jak psát testy, které nebudou zbytečně křehké Nejčastější chybou býúložné prostory v malém bytěá testování více věcí naráz. Jeden test by měl ověřovat jednu logickou jednotku. Pokud testujete metodu, která počítá cenu s daní, nesnažte se v jednom testu ověřit jak výpočet, tak i formátování výstupu. Místo toho napište dva samostatné testy. Tím se vyhnete situaci, kdy po změně formátování spadnou i testy výpočtu, ačkoli samotná matematika zůstala správná.

Začněte tím, že úkol rozdělíte na menší části. Pokud máte naplánovat funkci, rozložte ji na jednotlivé kroky – příprava dat, logika, UI, testy, dokumentace. U každého kroku odhadněte čas zvlášť a poté je sečtěte. Tím získáte přesnější obrázek, protože malé úkoly se odhadují snadněji než velký celek. Vyhnete se také efektu „všeho se týká" – když odhadujete velký balík, máte tendenci ho podhodnotit. Drobné části navíc umožní rychleji identifikovat, kde odhad selhal.

Klíčová je autentizace. Většina moderních API používá klíče, které najdete v nastavení účtu. Klíč nikdy nevkládejte přímo do kódu, který by mohl uniknout na veřejný repozitář. Místo toho ho uložte do proměnné prostředí nebo do konfiguračního souboru, který ignorujete. Při každém požadavku pak klíč posílejte v hlavičce, ne v URL – jinak se může objevit v logách serveru. Pokud API podporuje omezený přístup, nastavte si ho hned na rekonstrukce koupelny krok za krokemčátku.

Dále je nutné započítat režii, kterou mnozí přehlížejí. Schůzky, odpovídání na e-maily, nečekané dotazy kolegů, ladění prostředí – to vše patří k běžné práci, ale většinou se neobjevuje v odhadu. Doporučuji přidat k čistému času na programování rezervu alespoň 20–30 %. Tato rezerva není známkou slabosti, ale uznáním reality. Bez ní bude každý odhad příliš optimistický a tým bude chronicky přetížený.

Here is more in regards to Proměna bytu look at our own website.

댓글목록

등록된 댓글이 없습니다.