For

Jak vybrat mezi REST a GraphQL: praktická kritéria

Prakticky doporučuji: pro interní API, které obsluhuje vaši vlastní frontendu a vyvíjí se rychle, zvolte GraphQL. Pro veřejné API určené širokému spektru klientů, kde je důležitá stabilita a předvídatelnost, zůstaňte u REST. Pokud si nejste jisti, začněte s REST — je jednodušší a univerzálnější. GraphQL lze vždy přidat později, pokud se ukáže, že REST nestačí na rostoucí požadavky na výkon a flexibilitu.

Proč méně end-to-end testů znamená víc jistoty Na vrcholu pyramidy jsou end-to-end testy, které projíždějí celou aplikaci jako uživatel. Tyto testy jsou pomalé, drahé na údržbu a náchylné na rozbití kvůli maličkostem (např. jiná barva tlačítka). Proto jich pište minimum – jen pro kritické cesty, jako je registrace, nákup nebo přihlášení. Před každým spuštěním se ujistěte, že testovací prostředí je stabilní a data jsou předvídatelná. Vyhněte se používání testovacích čísel karet nebo náhodných e-mailů, které vyžadují ruční zásah. Ideální je, když si testy generují vlastní data a po sobě uklízejí.

Pamatujte, že cílem není vyhnout se slibům za každou cenu, ale slibovat jen to, co můžete splnit. Když se naučíte komunikovat odhady jako pracovní nástroj, ne jako věštbu, získáte si respekt a klienti se k vám budou rádi vracet. A to je lepší než sto rychlých, ale nesplněných termínů.

Než začnete mluvit o termínech, zjistěte si co nejvíce informací o zadání. Pokud zadání není kompletní, řekněte to nahlas. Klientovi vysvětlete, že odhad bez detailů je jako jízda bez mapy. Stanovte si interní rezervu – nepočítejte jen s optimálním průběhem, ale i s menšími komplikacemi, které se běžně stávají. Do odhadu zahrňte i čas na kontrolu, komunikaci a případné úpravy. Mnozí dělají chybu, že odhadnou čistý pracovní čas a pak bojují s každým dnem zpoždění.

Kdy už pokrytí přestává být užitečné? Když se pohybuje nad 90 % a další zvyšování vyžaduje psát testy pro triviální gettery, settery nebo chybové větve, které se v praxi nevyskytují. Takové testy jen zvyšují údržbu a zpomalují vývoj. Stejně tak pokrytí ztrácí smysl u jednorázových skriptů nebo prototypů, kde je rychlost důležitější než robustnost. Pokud tým začne hrát na čísla a upravovat kód, aby vyhověl měření (např. spojováním podmínek), je to jasný signál, že metrika škodí. V tu chvíli je lepší se zaměřit na mutační testování nebo na počet nalezených chyb v produkci.

Při práci s vestavěnými nástroji je klíčové mít pod kontrolou verzi kódu. Než začnete s rozsáhlejšími refaktoringy, vytvořte si commit nebo si alespoň uložte aktuální stav. Pokud se něco pokazí, můžete se snadno vrátit. Také si zvykněte dělat refaktoring v malých krocích a po každé operaci spustit testy. IDE vám dá vědět, pokud něco není v pořádku, ale automatické testy jsou vaší pojistkou, že se nic nerozbilo.

Typickou chybou je měřit pokrytí pouze u testů, které běží rychle, a ignorovat pomalé integrační testy. Pak čísla vypadají skvěle, ale reálné pokrytí je nízké. Dalším častým problémem je zapomínat na měření u nově napsaného kódu – pokud přidáte funkci bez testu, pokrytí klesá, ale nikdo si toho nevšimne, dokud není příliš pozdě. Řešení: automaticky generujte report po každém pushnutí do větve a posílejte ho do týmového chatu, aby byl vidět hned.

Pokrytí testy je jedním z nejčastěji skloňovaných metrik kvality kódu, ale málokdo ví, jak ho správně měřit a kdy přestává být vypovídající. Nejde o to dosáhnout čísla 100 %, ale o to, aby testy skutečně chránily před regresemi a dávaly smysl pro tým. V tomto článku se podíváme na to, jak pokrytí měřit prakticky, na co si dát pozor a kdy už další zvyšování přináší víc škody než užitku.

Při výběru se také zamyslete nad bezpečností a výkonem. REST má jednodušší ochranu proti SQL injection a snadněji se loguje — každý endpoint je jasně definovaný. GraphQL má tuto výhodu v tom, že umožňuje granulární autorizaci na úrovni polí, ale zároveň riskujete, že klient pošle dotaz, který vedlejším efektem přetíží server (např. vnořené pole, které cyklicky volá databázi). Musíte proto zavést limity na hloubku dotazu a počet vrácených záznamů — to je častý zdroj chyb u začínajících týmů.

Základem je funkce ‘Přejmenovat’ (obvykle zkratka Shift+F6 nebo F2). Namísto hledání a nahrazování v celém souboru, což často vede k přepsání i jiných identifikátorů, IDE inteligentně přejmenuje symbol na všech místech, kde se používá. To platí nejen pro proměnné, ale i pro metody, třídy a dokonce i soubory. Při přejmenování třídy se navíc automaticky aktualizuje i název souboru, což je obrovská úspora času. Důležité je, že funkce respektuje i použití v řetězcích, komentářích a dalších kontextech, pokud to nastavíte v parametrech.

  • ID: 332595

Reviews

There are no reviews yet.

Be the first to review “Jak vybrat mezi REST a GraphQL: praktická kritéria”

Your email address will not be published. Required fields are marked *