Typickou chybou bývá verzování knihoven pomocí data v názvu tagu nebo pouhého čísla commitu. To sice vypadá rychle, ale znemožňuje zpětné dohledání, co přesně se změnilo a proč. Verze musí být vždy spojená s popisem změn. Vytvořte si proto jednoduchý soubor se seznamem změn pro každou knihovnu a udržujte ho aktuální. Při každém vydání nové verze do něj zapište, co se změnilo, a odkazujte na příslušné issue nebo pull request. Bez této informace je po třech měsících nemožné zjistit, jestli je bezpečné aktualizovat z verze 1.2.0 na 1.3.0.
Další pastí je verzování samotného kódu podle data, nikoliv podle sémantické verze. Pokud přidáváte nové funkce, ale zároveň měníte staré, zvyšte major verzi. Pokud jen opravujete chyby, zvyšte minor verzi. Pokud měníte jen interní detaily, zvyšte patch. Toto pravidlo musí být napsané v dokumentaci projektu a každý člen týmu ho musí dodržovat. Bez toho se rychle stane, že dvě verze knihovny mají stejné číslo, ale různé chování, což je nejhorší možný scénář.
Před odesláním pull requestu si ověřte, že váš kód prochází všemi testy. Pokud projekt žádné testy nemá, zkuste alespoň spustit sestavení. Typickou chybou je poslat změny, které fungují jen u vás, ale rozbijí něco jiného. Po odeslání pull requestu se může stát, že vám správci napíšou připomínky. Nebuďte z toho frustrovaní – je to běžná součást spolupráce. Reagujte na komentáře věcně, vysvětlujte své rozhodnutí a případně upravte kód.
Při růstu codebase sledujte dva varovné signály: když jednotkové testy začnou vyžadovat složité mockování (např. pět úrovní mocků), je to známka špatné architektury – testy vás tlačí k refaktoringu. Když integrační testy začnou být pomalé a nestabilní (flaky), rozdělte je podle domén nebo použijte testovací kontajnery, ale neodstraňujte je. Důležité je také testy pravidelně profilovat – pokud jeden integrační test trvá minutu, zatímco ostatní sekundy, podívejte se, jestli nezpůsobuje zbytečné čekání na síti nebo na disku.
Základní pravidla pro správu závislostí Začněte tím, že každé knihovně přiřadíte vlastní verzovací schéma podle sémantického verzování. Hlavní číslo měníte při nekompatibilní změně, vedlejší při přidání funkce a opravné při opravě chyby. Toto schéma pak důsledně dodržujte i u interních balíčků. Nejčastější chybou bývá, že se verze knihovny mění jen podle toho, kdy se na ní pracovalo, ne podle povahy změn. Výsledkem je pak situace, kdy zvýšíte hlavní číslo kvůli drobné úpravě logování a uživatelé knihovny zbytečně řeší migrace, které nejsou nutné. Naopak nekompatibilní změnu označíte pouze jako vedlejší verzi a ostatní týmy ji nasadí bez rozmyšlení – to vede k runtime chybám.
Ve větších projektech se vyplatí zavést pravidlo, že každá knihovna je verzovaná nezávisle na aplikaci, ale zároveň existuje centrální soubor, který definuje kompatibilní kombinace. Tento soubor může být jednoduchý textový dokument nebo strojově čitelný manifest. Důležité je, aby obsahoval matici testovaných verzí – tedy které verze knihoven spolu fungují a které ne. Tím se vyhnete situaci, kdy vývojář nasadí novou verzi knihovny A, aniž by věděl, že to rozbije knihovnu B. Automatizované testy by měly tuto matici pokrývat alespoň pro kritické cesty aplikace.
Užitečné funkce a tipy pro efektivní testy Kromě základního použití pytest nabízí i pokročilejší funkce. Nejužitečnější je fixture, který umožňuje připravit data nebo objekty před testem a uklidit po něm. Fixture definujete dekorátorem @pytest.fixture a funkci pak použijete jako parametr testovací funkce. Například pokud testujete databázi, fixture může vytvořit dočasnou databázi a po testu ji smazat. To udržuje testy nezávislé a rychlé. Další užitečnou funkcí je parametrize, která umožňuje spustit stejný test s různými vstupními hodnotami – díky ní nemusíte psát mnoho podobných funkcí.
Nakonec pamatujte, že verzování není jen o číslech, ale o komunikaci. Nezavádějte příliš mnoho verzí najednou. Pokud je to možné, udržujte jednu hlavní verzi knihovny a pro starší verze vytvářejte jen bezpečnostní opravy. U projektů s více verzemi knihoven pak vždy definujte, která verze je oficiální pro produkci a která je určena pro experimenty. Tím se vyhnete zmatkům a všichni budou vědět, na čem staví.
Na co si dát pozor při testování? Vždy zkontrolujte, že se obsah nepřekrývá a že jsou mezery mezi prvky konzistentní. Použijte gap místo margin na jednotlivých prvcích – tím se vyhnete nežádoucím mezerám na okrajích. A pamatujte: responzivní design není jen o technice, ale o tom, aby se uživatel cítil pohodlně na jakémkoli zařízení. Pokud budete kombinovat Grid a Flexbox s rozmyslem, zvládnete to bez zbytečného stresu.
- ID: 332578


Reviews
There are no reviews yet.