Když odhadujete čas na úkol, nezapomeňte na skryté činnosti

From feywild

Jak strukturovat testy a využít fixtures Když potřebujete připravit data nebo prostředí, použijte fixtures. Jsou to funkce s dekorátorem @pytest.fixture, které vrací hodnotu nebo objekt. Například

assert 1 + 1 == 2Nemusíte psát třídy ani dědit z nějaké základny – stačí funkce a assert. Tento minimalismus je hlavní výhodou oproti unittestu. Při psaní testů se vyplatí mít každý test nezávislý a zaměřený na jednu konkrétní funkcionalitu. Pokud test selže, okamžitě víte, co je rozbité

Začít verzovat vlastní kód je jednodušší, než se zdá. Git vám umožní vracet se k předchozím verzím, experimentovat bez strachu, že něco rozbijete, a spolupracovat s ostatními bez nekonečného přeposílání souborů. Mnoho začátečníků ale dělá stejnou zásadní chybu: inicializují repozitář, udělají první commit a teprve potom zjistí, že do historie zahrnuli soubory, které tam být neměly. Opravit to jde, ale je to zbytečná práce.

Nakonec se vyplatí do dokumentace přidat i praktické interaktivní prostředí, kde si frontend může zavolat API přímo z prohlížeče. Nemusí to být nic složitého – stačí možnost zadat parametry a zobrazit odpověď. Až frontend narazí na nejasnost, místo psaní e-mailu si všechno vyzkouší sám. Taková dokumentace se stává nástrojem, ne přítěží. Pokud se navíc pravidelně kontroluje a aktualizuje při každé změně kódu, spolupráce se výrazně zrychlí a počet chyb klesne na minimum. Důležité je, aby dokumentaci vnímal jako svůj úkol celý tým, nejen backend.

Když už máte první commity za sebou, vyzkoušejte si vracení změn. Git nabízí příkaz pro vrácení posledního commitu, ale pozor – pokud jste změny už poslali do vzdáleného repozitáře, řešení je jiné než u lokálních commitů. U lokálního repozitáře si můžete dovolit reset, u sdíleného je bezpečnější použít revert, který vytvoří nový commit vracející staré změny. Tím se vyhnete přepisování historie, které by mohlo rozbít práci ostatních.

Typové systémy se neomezují jen na primitivní typy. Prakticky využijete generické funkce, které umožňují zachovat typovou informaci napříč logikou. Například funkce pro získání prvku z pole podle indexu může vracet typ prvku pole, nikoli univerzální objekt. Tím dosáhnete toho, že kód bude znovupoužitelný a zároveň typově bezpečný. Také si osvojte práci s typovými predikáty a diskriminovanými uniemi. Tyto techniky vám umožní modelovat složitější domény, jako jsou stavy formuláře, výsledky síťových požadavků nebo různé varianty dat, aniž byste museli používat obsáhlé hierarchie tříd.

Při práci s TypeScriptem je důležité pochopit rozdíl mezi typem any a neznámým typem unknown. any vypíná veškerou kontrolu a měl by se používat jen jako poslední záchrana, když migrujete starý kód. unknown vás naopak nutí zkontrolovat hodnotu předtím, než ji začnete používat, což vede k bezpečnějšímu kódu. Nejčastější chyba začátečníků je, že kvůli rychlosti napíší : any všude, kde si nejsou jistí. Výsledkem je projekt, který má sice příponu .ts, ale chová se jako JavaScript bez jakékoliv ochrany. Místo toho se vyplatí použít specifické typy jako string, number, boolean, pole nebo tuple, případně vytvořit vlastní typ pomocí union nebo generik.

Prvním krokem je vytvořit jednotný popis všech endpointů na jednom místě. Nejlépe ve formátu, který může backend rovnou generovat z kódu, a frontend si ho může stáhnout do svého vývojového prostředí. Vyhněte se ručně psaným dokumentům v textových editorech – ty rychle zastarávají a nikdo je neudržuje. Místo toho používejte nástroje, které popis API generují z anotací nebo z definic datových struktur. Díky tomu bude dokumentace vždy odpovídat skutečnému stavu aplikace, což je nejdůležitější podmínka pro to, aby jí lidé věřili a používali ji.

Dalším praktickým tipem je používat jednotný formát pro všechny odpovědi, ať už jde o úspěch nebo chybu. Pokud backend vrací data v obalu s meta informacemi, frontend si na tento vzor rychle zvykne a nemusí řešit výjimky. Tady pozor na častý nešvar – někteří vývojáři přidávají do odpovědi jen to, co zrovna potřebují, a časem se struktura rozpadne. Domluvte se na konvenci a striktně ji dodržujte. Dokumentace by měla obsahovat i příklad, jak vypadá seznam položek, prázdný výsledek nebo případ, kdy je pole null. Právě tyto okrajové stavy dělají frontendu největší problémy.

Co udělat, než vůbec poprvé spustíte git add Příkaz git add . je pohodlný, ale může být past. Přidá totiž do staging area všechny soubory, které nejsou v .gitignore. Pokud jste na to zapomněli, ocitnou se v commitu i velké soubory, které zpomalují celý repozitář. Vždy si nejprve zkontrolujte, co se bude přidávat. Použijte git status a projděte si seznam souborů. Pokud tam vidíte něco nechtěného, upravte .gitignore nebo použijte git reset pro odebrání konkrétního souboru ze staging area. Teprve poté proveďte commit s jasnou zprávou.