Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Mazovia
Szukaj
Szukaj
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
Jak na testovací pyramidy: Struktura testů, která drží krok
Strona
Dyskusja
polski
Czytaj
Edytuj
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Strony specjalne
Informacje o tej stronie
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
Naopak GraphQL vyniká tam, kde potřebujete flexibilitu a rychlost vývoje. Jestliže máte složitou doménu s mnoha vzájemně provázanými entitami (např. sociální síť, dashboard s mnoha grafy), GraphQL umožní klientovi získat přesně ta data, která potřebuje, jediným dotazem. To eliminuje problém overfetchingu a underfetchingu — REST při náročnějších požadavcích často donutí klienta volat více endpointů, což zvyšuje latenci a zbytečně zatěžuje server.<br><br>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ů.<br><br>Jak nastavit správné proporce a kdy přidat další vrstvy Když začnete s pyramidou, nesnažte se přesně kopírovat poměry z učebnic. Místo toho se zaměřte na to, co testy skutečně mají ověřit. Jednotkové testy by měly pokrývat logiku byznysu, algoritmy a složitější podmínky. Integrační testy se hodí pro práci s databází, externími službami nebo konfigurací. End-to-end testy si nechte na kritické uživatelské scénáře, jako je přihlášení, registrace nebo platba. Praktické pravidlo: pokud vám jednotkový test trvá přes sekundy, pravděpodobně testuje příliš mnoho najednou.<br><br>Při návrhu API často stojíte před zásadním rozhodnutím: zvolit REST, nebo GraphQL. Neexistuje univerzální odpověď — obě technologie mají své silné i slabé stránky. Klíčem je pochopit, co vaše aplikace skutečně potřebuje, a podle toho se rozhodnout. V tomto článku se zaměříme na konkrétní situace, kdy se vyplatí sáhnout po té či oné variantě.<br><br>Když test napíšete, spusťte ho. Pokud projde, zkuste ho schválně rozbít změnou očekávané hodnoty. Tím si ověříte, že test skutečně funguje a není jen formální. Poté hodnotu vraťte zpět. Tento postup je dobré si zapamatovat, protože odhaluje falešně zelené testy, které testují špatnou věc. Jakmile máte první test hotový, pokračujte dalším. Postupně získáte jistotu a testování se stane přirozenou součástí vašeho vývoje.<br><br>Kdy REST ještě dává smysl REST je ideální volbou pro jednoduché a stabilní API, kde je počet koncových bodů malý a datová struktura se často nemění. Pokud vyvíjíte veřejné rozhraní pro externí vývojáře, REST je sázka na jistotu — má jasná pravidla, snadno se testuje a dobře se cacheuje. Typické příklady: e-shopy s pevnou strukturou produktů, blogovací systémy, nebo mikroslužby, které komunikují interně. Vyhnete se tak zbytečné složitosti a výkonnostním problémům.<br><br>Důležité je také zvážit, jak se vaše API bude vyvíjet. REST vyžaduje při změně datového modelu často nový endpoint nebo verzi API, což přináší údržbu a zpětnou kompatibilitu. GraphQL vám umožňuje přidávat nová pole do existujícího schématu bez narušení starších klientů. Pokud ale vaše API poskytuje čistě jednoduché CRUD operace, je GraphQL zbytečně složité — jeho schéma a resolvery přidávají vrstvu abstrakce, která se nevyplatí.<br><br>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.<br><br>Testovací pyramida je jedním z nejpraktičtějších konceptů, které můžete při vývoji softwaru využít. Nejde o žádnou formalitu, ale o princip, který výrazně ovlivní stabilitu i rychlost vašeho kódu. Základní myšlenka je jednoduchá: čím nižší úroveň testu, tím rychlejší a levnější by měl být. Proto se doporučuje stavět na široké základně jednotkových testů, uprostřed mít menší vrstvu integračních testů a na vrcholu jen minimum end-to-end testů.<br><br>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ů.<br><br>Při psaní testu si dejte pozor na použití ostrých dat z produkce. Test by měl být vždy nezávislý na okolním prostředí. Pokud test používá datum a čas, nezadávejte aktuální hodnotu, ale pevně zvolenou konstantu. Stejně tak se vyhněte náhodným hodnotám, které test dělají nestabilním. Test, který občas selže, pozbývá smyslu. Pro první test zvolte natvrdo zadaná data, abyste měli jistotu, že výsledek je vždy stejný.
Opis zmian:
Wszelki wkład na Mazovia może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Mazovia:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Przełącz ograniczenie szerokości strony