Na závěr si osvojte práci s verzováním kódu, i když je to jen pro osobní projekty. Uložíte si tím možnost vrátit se k předchozí verzi, když něco rozbijete. A hlavně: testujte na malých vzorcích dat, ne hned na celém systému. Tím se vyhnete velkým škodám a snáze najdete chyby.<br>
<br>
<br>
<br>
Dalším častým problémem je ošetření výjimek. Když skript narazí na chybějící soubor nebo odepřený přístup, spadne a zastaví se. Naučte se obalovat kritické části kódu blokem `try` a `except`, aby program chybu zachytil a pokračoval dál. Užitečné je také logování pomocí modulu `logging`, které vám pomůže pochopit, co se v průběhu běhu dělo – píšete tím do souboru, takže nemusíte sledovat terminál.<br>
<br>
<br>
<br>
Na závěr: TypeScript se nejlépe učí při práci na reálném projektu. Začněte tím, že si do existujícího JavaScriptového projektu přidáte konfigurační soubor a postupně přepnete soubory na .ts. Sledujte chyby, které editor hlásí, a opravujte je. Po pár týdnech zjistíte, že píšete kód rychleji, protože se nemusíte spoléhat na paměť a dokumentaci. Chyby odhalíte dřív, než se dostanou k uživatelům, a to je největší přínos, který TypeScript nabízí.<br>
<br>
<br>
<br>
<strong>Jako první krok si zvolte</strong> testovací framework. Pokud píšete v Javě, sáhněte po JUnit, v Pythonu po pytestu, v JavaScriptu po Jestu. Nezáleží na tom, který si vyberete, důležitý je princip. Vytvořte nový soubor, který má v názvu slovo „test", aby ho framework automaticky našel. Do něj napište funkci nebo metodu, která začíná slovem „test". Uvnitř zavolejte testovanou funkci a výsledek porovnejte s očekávanou hodnotou pomocí aserce. Například: assert(secitani(2, 3) == 5).<br>
<br>
<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>
<br>
<br>
Jak vyvážit vrstvy a nezapomenout na integrační testy Integrační testy by měly tvořit asi 10–20 % celé sady. Jejich úkolem je ověřit spolupráci mezi komponentami, například mezi službou a databází, nebo mezi frontendem a backendem. Nepište je ale pro každou metodu – to by je zpomalilo. Vyberte si klíčové scénáře, které propojují více vrstev. Pro testy s databází používejte izolované prostředí, nejlépe transakce, které se po každém testu vrátí zpět. Vyhněte se sdílenému stavu mezi testy – paralelní běh by pak selhával náhodně.<br>
<br>
<br>
<br>
Když test napíšete, spusťte ho a ujistěte se, že selže. To zní divně, ale je to klíčové. Pokud test projde hned napoprvé, nemáte jistotu, že opravdu testuje to, co chcete. Úmyslně změňte testovanou funkci a sledujte, že test začne padat. Pak změnu vraťte. Tento postup vám ukáže, že test má vypovídací hodnotu. Nakonec spusťte celou testovací sadu a sledujte, že je zelená. Pak se můžete pustit do dalšího testu. Postupně rozšiřujte pokrytí, ale nenechte se zmást čísly. Lepší je pět smysluplných testů než padesát, které jen opakují to samé.<br>
<br>
<br>
<br>
Při navrhování pyramidy začněte analýzou rizik. Zaměřte se na kritické části systému, jako je zpracování plateb, přihlašování nebo výpočet cen. Pro ně napište jednotkové testy s robustními mocky. Ujistěte se, že testy netestují implementaci, ale chování. To znamená, že test by měl projít i po refaktoringu vnitřní struktury třídy, pokud se nemění vnější rozhraní. Typická chyba: test ověřuje, že byla zavolána metoda na mocku, místo aby kontroloval výsledek. Takový test je příliš svázaný s detaily a snadno se rozbije.<br>
<br>
<br>
<br>
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>
<br>
<br>
Pro automatizaci webových úloh, jako je stahování dat, použijte knihovny `requests` a `BeautifulSoup`. Nejdřív si zkontrolujte, zda web, který chcete scrapovat, nemá ve svých pravidlech zákaz automatizace – jinak se vystavujete riziku blokace IP adresy. Při práci s časovými intervaly (např. čekání mezi požadavky) vždy používejte `time.sleep()`, aby server nebyl přetížen.<br>
<br>
<br>
<br>
<span style="font-weight: 800;">Prakticky doporučuji: pro</span> 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.<img src="https://www.freepixels.com/class=" style="max-width:420px;float:left;padding:10px 10px 10px 0px;border:0px;">