Volba mezi REST API a GraphQL: praktický návod

Aus MeinWiki
Version vom 21. August 2026, 19:45 Uhr von ElizbethTedeschi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Při nasazování měřte, co se děje. Sledujte dobu nasazení, počet selhání a průměrnou dobu opravy. Tyto metriky jsou důležitější než rychlost s…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Při nasazování měřte, co se děje. Sledujte dobu nasazení, počet selhání a průměrnou dobu opravy. Tyto metriky jsou důležitější než rychlost samotného nasazení. Když čísla ukazují, že se něco zhoršuje, vraťte se a opravte to. Častý začátečnický omyl je honit se za co nejrychlejším nasazením a přitom ignorovat stabilitu. Dobré DevOps se pozná podle toho, že je nasazení nudné a bez překvapení.

Když se databáze začne zadýchávat, první podezření padá na SQL dotazy. Pomalé dotazy nezpůsobují jen čekání uživatelů, ale i přetížení serveru a zbytečné náklady na infrastrukturu. Než sáhnete po dražším hardwaru, vyplatí se podívat na to, jak jsou dotazy napsané. Často stačí drobná úprava a výsledek se dostaví v řádu sekund.

Vyhýbejte se také nadměrnému používání `SELECT *`. Zbytečně přenášíte data, která nepotřebujete, a to zatěžuje síť i paměť. Místo toho vypisujte jen sloupce, které skutečně používáte. U velkých textových polí (TEXT, BLOB) to může znamenat řádové zrychlení.

Jak na to: struktura a kontext Začněte krátkým shrnutím do 50 znaků, které vystihuje podstatu změny. Poté, pokud je třeba, přidejte prázdný řádek a pokračujte podrobnějším popisem. Vysvětlete, jaký problém řešíte, jaké jsou důvody volby řešení, a pokud má změna vliv na chování aplikace, popište i to. Nezapomeňte zmínit případné vedlejší účinky nebo nutnost migrace dat. Tento kontext je klíčový pro pochopení rozhodnutí, která jste udělali.

Praktické doporučení: použijte REST, když je vaše API jednoduché, málo se mění a hlavním konzumentem je webový prohlížeč. GraphQL volte tehdy, když máte heterogenní klienty (mobil, desktop, IoT), potřebujete agregovat data z mikroservis nebo chcete minimalizovat přenos dat u pomalých mobilních sítí. Častou chybou je kombinovat obojí v jednom projektu bez jasného pravidla – pak ztrácíte výhody obou.

Až budete mít stabilní základ, rozšiřte automatizaci na monitorování a sběr logů. Ale ani tady nehledejte nástroj, který umí všechno. Vezměte to, co už máte, a pořádně to propojte. Vytvořte jednoduchý dashboard, na který se tým dívá ráno a večer. Pokud vás něco napadne a chcete to vyzkoušet, udělejte to na malém nezávislém projektu. To je nejlepší způsob, jak se učit, protože případná chyba nepoškodí produkci. A hlavně – DevOps není cíl, ale neustálé zlepšování. Nebojte se experimentovat a měnit procesy podle toho, co tým skutečně potřebuje.

Při psaní zprávy se držte přítomného času, rozkazovacího způsobu – to je běžný standard. Nezapomeňte také na konzistenci v rámci týmu. Domluvte si šablonu, třeba s prefixy jako „feat:" pro nové funkce, „fix:" pro opravy, „refactor:" pro úpravy bez změny chování. Taková pravidla zvyšují čitelnost a umožňují automatické generování changelogů.

Další důležitý krok je verze infrastruktury. Ať už používáte kontejnery, virtuální stroje nebo jen skripty, zapište vše do kódu. Takzvané Infrastructure as Code vám umožní popsat prostředí v souborech, které můžete kontrolovat, verzovat a snadno obnovit. Nezačínejte s něčím složitým, jako je orchestrace celého clusteru. Stačí, když budete mít popis, jak má vypadat server pro testování. Tím se vyhnete situaci, kdy nikdo neví, co je na produkci nainstalované a proč to funguje.

Na závěr: neřiďte se módou, ale konkrétními požadavky. Nakreslete si datové modely, odhadněte, kolik dotazů bude potřeba, a změřte, jakou velikost odpovědí klienti skutečně využijí. Pokud by GraphQL u jednoduchého blogu znamenal jen zbytečnou komplexitu, radši zůstaňte u REST. Naopak u aplikace s hluboce propojenými daty se GraphQL vyplatí i přes vyšší nároky na údržbu.

Začněte s jedním malým automatizačním krokem Jakmile máte jasný obrázek o procesu, vyberte si jednu jednoduchou věc, kterou automatizujete. Ideální je sestavení aplikace nebo spouštění testů. Můžete použít nástroj pro CI/CD, ale nezačínejte s plnou konfigurací pipeline až do produkce. Stačí, když se commit do repozitáře spustí sestavení a spadnou rychlé testy. Uvidíte, kolik času to ušetří a kde jsou slabiny. Jakmile to funguje, přidejte nasazení do testovacího prostředí. Pozor na to, abyste automatizaci nehnali do extrému – pokud je prostředí nespolehlivé, každý chybný automatický krok jen přidá chaos.

Druhým častým problémem je použití funkce na indexovaném sloupci. Když napíšete `WHERE UPPER(jmeno) = 'NOVAK'`, databáze nemůže index využít, protože musí nejprve transformovat hodnotu. Řešení je jednoduché: ukládejte data v normalizovaném tvaru (např. malými písmeny) nebo použijte funkční index, pokud to databáze podporuje.