Když potřebujete psát čistší kód: ES6 funkce v praxi
Přechod na ES6+ není otázkou přepisu celé kódové základny, ale spíše postupného osvojování si nových vzorů. Začněte u funkcí, které používáte denně: nahraďte anonymní funkce v callbackách, přidejte výchozí hodnoty parametrů a destrukci pro zpracování dat z API. Tyto tři kroky vám okamžitě zkrátí kód a zvýší jeho čitelnost. Když narazíte na problém, nepřeskakujte na nejnovější syntaxi bez rozmyslu – nejprve si ověřte, zda arrow funkce skutečně dává smysl v daném kontextu. Jakmile si osvojíte tyto základy, budete se moci pustit do pokročilejších funkcí, jako jsou třídy nebo moduly, ale i ty staví na stejných principech.
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ě.
Důležité je také pravidelně kontrolovat, zda se poměr testů nemění s tím, jak se vyvíjí kód. Když přidáváte novou funkci, napište nejdříosvětlení v obýváku pár rychlých jednotkových testů na logiku, a teprve pak jeden integrační test, který ověří, že funkce funguje s reálnými daty. Když provádíte refaktoring, mějte na paměti, že jednotkové testy by měly zůstat zelené — pokud nejsou, refaktorujete příliš mnoho najednou. A když se blíží termín, odolejte pokušení omezit testování na minimum — právě tehdy se vyvážení testů ukáže jako klíčové pro rychlé nalezení chyb.
Prvním krokem k vyvážení je rozdělení testů podle rychlosti a spolehlivosti. Doporučuji zavést tři úrovně: rychlé jednotkové testy, které běží během pár sekund, středně rychlé integrační testy pro klíčové scénáře a pomalé end-to-end testy, které se spouští jen při nasazení. Toto rozdělení umožní časté spouštění rychlých testů při vývoji a méně časté spouštění pomalých testů v CI. Zde je důležité, aby se každá úroveň spouštěla automaticky s odpovídající frekvencí — jinak se rychlé testy rekonstrukce koupelny krok za krokemčnou promíchávat s pomalými a celý cyklus se zbytečně protáhne.
DevOps není nástroj ani pozice, ale způsob spolupráce mezi vývojem a provozem. Pokud s ním začínáte, pravděpodobně narazíte na dva extrémy: buď se vše tváří jako nasazení pár skriptů, nebo se z toho stane nekonečné zavádění procesů, které nikdo nechápe. Klíčem je začít malými kroky, které přinesou měřitelný výsledek.
Na závěr si zapamatujte tři věci: neustále komunikujte, co děláte; nevytvářejte obří pull requesty s tisíci řádky; a hlavně se nevzdávejte, když první pokusy nebudou dokonalé. Git workflow se ladí postupně – každý tým si najde svůj rytmus, který mu vyhovuje. Důležité je, aby se všichni cítili bezpečně a věděli, že případná chyba se dá opravit. S dobrým workflow ušetříte hodiny času a nervů, které pak můžete věnovat samotné práci.
Prvním krokem je zmapovat si aktuální pipeline – tedy cestu kódu od vývojáře až na produkci. Nemusíte hned popisovat každý detail, ale zjistěte, kde vznikají největší zpoždění a kde se nejčastěji chybuje. Typickou chybou je skočit rovnou na automatizaci nasazení, zatímco testy běží ručně a konfigurace se řeší přes e-maily. Místo toho se zaměřte na jeden úzký úsek – třeba nasazení do testovacího prostředí – a tam zkraťte čas.
Základním pravidlem je, že každá změna jde přes pull request (neboli merge request). If you have any queries concerning wherever and how to use jak zařídit malou Kuchyni, you can make contact with us at our own web site. Než rekonstrukce koupelny krok za krokemčnete psát kód, vytvořte si větev z main, udělejte jednu dílčí změnu a rovnou ji commitněte. Commit message pište v přítomném čase a věcně: „Přidává validaci e-mailu", ne „oprava". Po dokončení změny odešlete větev do vzdáleného repozitáře a vytvořte pull request. V něm vždy uveďte, co jste změnili a proč, případně přidejte odkaz na úkol v trackeru. Tím dáte kolegům kontext a usnadníte jim review.
Další užitečnou vychytávkou je Array.prototype.flatMap(). Kombinuje map() a flat() v jednom průchodu. Představte si, že máte pole vět a potřebujete rozdělit každou větu na slova. flatMap() vám vrátí ploché pole slov bez nutnosti vnořených cyklů. Častý omyl je použití map() a poté flat() s hloubkou 1 – to funguje, ale je to zbytečně pomalé a méně čitelné. flatMap() je rychlejší a výraznější, ale pozor na to, že funguje pouze s hloubkou jedna.