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.
Začít s testováním softwaru bez předchozí praxe je reálné, ale vyžaduje to jiný přístup než u jiných IT pozic. Zaměstnavatelé u juniorních testerů neočekávají zkušenosti s nástroji, ale spíše schopnost logicky uvažovat, všímat si detailů a systematičnost. Klíčové je pochopit, že testování není jen „klikání do aplikace”, ale disciplinovaná práce s jasnou strukturou.
Myslete také na kontext. Commitová zpráva není místo pro kompletní dokumentaci, ale měla by obsahovat odkazy na související úkoly nebo čísla ticketů, pokud je to ve vašem týmu zvykem. Důležité je, aby čtenář okamžitě pochopil, k čemu se změna vztahuje. Nepoužívejte ale zkratky bez vysvětlení – „oprava #123″ neřekne nic, pokud čtenář nemá přístup k systému. Raději napište „oprava výpočtu daně (ticket #123)”.
Retrospektiva týmu často skončí u tří vět: „Vše bylo dobré”, „Trochu nám to skřípalo” a „Musíme to zlepšit”. Příště se pak sejdete s vědomím, že se nic nezmění, a vy i kolegové začnete schůzku vnímat jako nutné zlo. Problém přitom nebývá v tom, že by lidé nechtěli mluvit, ale v tom, že nemají žádný rámec, jak své postřehy formulovat. Strukturovaná zpětná vazba mění chaotickou výměnu názorů v konkrétní akce, které mají šanci přežít až do dalšího sprintu.
Co dělat, když sprint nevyjde podle plánu? Nejdřív si přiznejte, že odhad byl špatný, a zaměřte se na to, proč k tomu došlo. Častým problémem je přeplněný backlog, kde každá položka vypadá jako malá změna, ale ve skutečnosti skrývá složité závislosti. Doporučuji naplánovat sprint s rezervou – ideálně 80 % kapacity týmu. Zbylých 20 % nechte na neočekávané opravy, schůzky nebo technický dluh. Pokud tým pravidelně nestíhá, zkraťte sprint na jeden týden. Kratší cyklus vám dá rychlejší zpětnou vazbu a menší riziko plýtvání.
Jaké konfigurační nastavení vám ušetří nejvíc času Než začnete psát větší projekt, věnujte pozornost souboru tsconfig.json. Můžete v něm zapnout přísný režim pomocí volby strict, který zahrnuje kontroly jako noImplicitAny nebo strictNullChecks. Právě tato nastavení vás donutí psát typově bezpečnější kód, ale na začátku mohou být frustrující, protože odhalí mnoho skrytých problémů. Doporučuji zapnout strict od začátku a postupně opravovat chyby, místo abyste je odkládali na později. Další užitečná volba je noUncheckedIndexedAccess, která vás upozorní na to, že přístup k prvku pole vrací hodnotu, která může být undefined. Tím předejdete častým chybám při práci s poli nebo slovníky.
Měření pokrytí kódu testy je užitečný nástroj, ale často se z něj stává fetiš. Mít 100% pokrytí neznamená, že je aplikace bez chyb. Spíše to může znamenat, že testy kontrolují jen to, co se snadno testuje, a ignorují složitější scénáře. Klíčové je vědět, kdy měření dává smysl a kdy jen vytváří falešný pocit bezpečí.
Největší přínos přichází při refaktorování a úpravách existujícího kódu. Bez typů je při přejmenování funkce nebo změně struktury objektu nutné ručně prohledat celý projekt a doufat, že jste nic nezapomněli. S TypeScriptem stačí změnit definici typu a překladač ihned vyjmenuje všechna místa, která nový tvar nesplňují. Prakticky to znamená, že se vyhnete situacím, kdy aplikace spadne na produkci kvůli tomu, že někdo předal číslo tam, kde se čekal řetězec. Kromě typové kontroly získáte i lepší podporu v editoru: doplňování vlastností, hlášení překlepů a rychlé nalezení použití funkce.
Začněte tím, že si definujete, co chcete měřit. Nejběžnější je řádkové pokrytí (line coverage), ale vypovídá jen o tom, které řádky se provedly, ne o tom, zda byly otestovány všechny důležité větve. Zkuste se podívat na pokrytí větví (branch coverage) a podmínek. Pokud máte funkci s několika vnořenými podmínkami, řádkové pokrytí vám ukáže 100%, ale větev může zůstat netestovaná. Dobrým začátkem je kombinace obou metrik, ale pamatujte, že žádná z nich neříká nic o tom, zda testy skutečně ověřují správné chování.