Když chcete začít s Dockerem bez zbytečných chyb
Dalším praktickým krokem je revize stávajících testů. Najděte testy, které trvají déle než několik sekund, a zjistěte, zda to není způsobeno tím, že testují příliš mnoho scénářů naráz. Rozdělte je na menší, nezávislé testy. Pokud máte test, který pokrývá celý řetězec od databáze po UI, zeptejte se, zda je takový test opravdu nezbytný, nebo zda stačí otestovat rozhraní mezi jednotlivými vrstvami zvlášť. Někdy pomůže napsat malý skript, který změří dobu běhu každého testu, a na základě toho nastavit pravidla: testy, které běží déle než 200 ms, musí být označeny jako integrační a spouštěny odděleně.
Práce s chybovými stavy a zpětnou vazbou Když uživatel vyplní formulář a odeslání selže, je klíčové, aby hned viděl, kde je problém. Chybová hláška by měla být konkrétní — místo „Chyba 500" napiš „Telefonní číslo nemá správný formát". Vyhni se ale technickému žargonu. Také nikdy neoznačuj chybu jen červenou barvou, protože část uživatelů má poruchu barevného vidění. Doplň ji ikonou a textovým popisem. A co je důležité: po opravě vstupu uživatel nemusí formulář znovu vyplňovat celý — předvyplněné hodnoty zůstávají.
Nezapomeňte na Dockerfile. To je skript, který definuje, jak zařídit malou kuchyni se vytvoří obraz. Začněte s FROM, na této stránce které určí základní obraz (například python:3.12), pak přidejte WORKDIR, COPY a CMD. Vyvarujte se dvou věcí: nesnažte se do obrazu kopírovat celý projekt včetně složek typu node_modules nebo .git — ty se do obrazu nedostanou, pokud je nevyjmenujete v souboru .dockerignore. A neinstalujte balíčky, které nejsou nezbytně nutné — každá vrstva zvětšuje obraz a prodlužuje čas spuštění.
Základní pravidlo zní: jednotkové testy by měly pokrývat logiku a algoritmy, které se často mění a které mají mnoho větví. In case you loved this short article and you would like to receive more details concerning feywild.Thirdrealm.org kindly visit the web-page. Integrační testy by měly ověřovat spolupráci komponent, které se mění zřídka, ale jejichž selhání má velký dopad. Pokud je tento poměr obrácený, čelíte běžné chybě: integrační testy testují detaily implementace, které se mění s každým refaktorem, a jednotkové testy se snaží pokrýt celý systém přes mocky, což vede ke křehkým a zbytečně komplexním testům. Jakmile kód přeroste určitou velikost, začne se tento nevyvážený přístup projevovat častými „falešnými poplachy" — testy selhávají, i když je aplikace funkční.
Automatizace opakujících se požadavků pomocí spouštěčů (runners) je dalším krokem. Kolekci můžete spustit s testovacími daty z CSV nebo JSON souboru, čímž snadno otestujete různé kombinace vstupů. Při hromadném spuštění sledujte výstup v tabulce runneru – tam najdete přehled, které testy prošly a které selhaly. Ušetříte tak hodiny manuálního klikání. Jen pozor na pořadí testů a závislosti mezi nimi – pokud jeden test závisí na hodnotě z předchozího, použijte skripty pro předání dat (např. přes proměnnou).
Další užitečnou funkcí je spread operátor. Pomocí ... snadno zkopírujete pole nebo objekt: const newArray = [...oldArray];, ale pozor – jedná se o mělkou kopii. Vnořené objekty sdílejí referenci a změna v kopii ovlivní původní data. Pro hlubokou kopii použijte structuredClone() nebo knihovny, ale ty jsou mimo rozsah článku. Spread se hodí i pro slučování objektů ...a, ...b , ale pořadí záleží – pozdější vlastnosti přepisují dřívější.
Docker je nástroj, který vám umožní spouštět aplikace v izolovaných prostředích, takzvaných kontejnerech. Na rozdíl od virtuálních strojů nepotřebujete pro každý kontejner plný operační systém, takže jsou lehčí a rychlejší. Pro začátečníka je klíčové pochopit, že kontejner není virtuální stroj — je to proces, který běží na hostitelském jádře, ale má vlastní souborový systém, síť a procesy. Tento článek vám ukáže, jak začít, na co si dát pozor a jaké chyby dělá téměř každý, kdo s Dockerem teprve začíná.
Jak konkrétně upravit poměr, když už je nevyvážený Začněte analýzou pokrytí podle rizika. Projděte produkční kód a označte si kritické moduly — ty, které zpracovávají peníze, ověřují přihlášení nebo řeší bezpečnost. Pro tyto moduly by měl být poměr jednotkových testů k integračním zhruba 3:1, protože potřebujete rychlé otestování všech okrajových případů. Pro méně rizikové části, jako jsou interní nástroje, stačí 1:1 nebo dokonce méně integračních testů. Toto rozdělení není dogma, ale výchozí bod pro diskusi v týmu.
Začněme destructuringem, tedy destrukturalizací přiřazení. Místo ručního kopírování hodnot z objektu do proměnných můžete napsat const name, age = user;. To platí i pro pole: const [first, second] = array;. Pozor na výchozí hodnoty – pokud vlastnost neexistuje, dostanete undefined. Použijte const name = 'Neznámý' = user;. Typická chyba: destructuring vnořených objektů bez kontroly existence, což vede k chybě Cannot read property.