Debugování v prohlížeči: DevTools versus staré dobré console.log

From IT-Core
Jump to navigation Jump to search

Typickým problémem, na který při ladění narazíte, je asynchronní kód. Zápis async/await může na první pohled vypadat jako synchronní, ale pořád se jedná o asynchronní operace. Pokud se vám zdá, že se kód nespouští ve správném pořadí, If you cherished this report and you would like to acquire far more facts pertaining to celý text kindly visit our internet site. podívejte se na záložku Sources a v sekci Call Stack si ověřte, jaké funkce jsou aktuálně na zásobníku. Pro složitější asynchronní scénáře využijte funkci „Async" v debuggeru, která umožňuje krokovat i přes hranice asynchronních funkcí. Díky tomu uvidíte, kdy se která část kódu skutečně provádí, a nejen kdy byla naplánována.

Dalším kritériem je podpora „remote development" a kontejnerů. V týmech, kde běží projekt v Dockeru, je výhodné IDE, které umí pracovat s konfigurací uvnitř kontejneru. Tím odpadá problém s rozdílnými verzemi nástrojů na lokálních strojích. Pozor ale na to, že i mezi IDE, která tuto funkci mají, existují rozdíly v tom, jak přesně mapují porty nebo jak synchronizují soubory – otestujte to na menším vzorku týmu, než se rozhodnete. Častou chybou je spoléhat na to, že všichni v týmu používají stejnou verzi IDE, ale zapomenout na to, že pluginy se aktualizují nezávisle a mohou konfiguraci rozbít.

Nakonec nezapomeňte na to, že jednotná konfigurace není cíl, ale prostředek. Pokud zjistíte, že tým tráví více času údržbou konfigurace než samotným kódem, změňte ji. Vyplatí se investovat do interní dokumentace, která vysvětlí, proč jsou určité hodnoty nastavené tak, jak jsou. A pokud máte v týmu nováčky, zkuste IDE, které umožňuje onboarding bez manuálního nastavování – třeba tím, že konfigurace obsahuje i vysvětlující komentáře. V konečném důsledku je nejlepší IDE to, které se stane neviditelným nástrojem, protože se všichni soustředí na řešení problému, ne na ladění prostředí.

Základní práce s DevTools začíná otevřením panelu – obvykle klávesovou zkratkou F12 nebo Ctrl+Shift+I. V záložce Console uvidíte nejen chybové hlášky, ale také výpisy z vašeho kódu. Místo obyčejného console.log zkuste využít metody jako console.table, která přehledně zobrazí pole objektů, nebo console.group, která seskupí související výpisy. Pokud potřebujete zjistit, kolik času zabere určitá část kódu, použijte console.time a console.timeEnd. Tím získáte konkrétní čísla, aniž byste si museli pamatovat časové značky.

Pokud tyto zásady dodržíte, dostanete pipeline, který šetří čas a snižuje riziko chyb v produkci. Naopak zanedbání testů v pipeline se dřív nebo později projeví. Buď selže nasazení v nejméně vhodnou chvíli, nebo se do produkce dostane chyba, která se mohla snadno zachytit. Automatizace tedy není cíl, ale prostředek k tomu, aby váš tým mohl dodávat rychleji a spolehlivěji. Začněte malými kroky a postupně pipeline vylepšujte podle skutečných potřeb projektu.

Základní strukturu Reduxu tvoří akce, reducery a store. Akce jsou obyčejné objekty s vlastností type – používejte pro ně konstanty, ne stringy přímo v komponentách. Reducer je čistá funkce, která vrací nový stav, nikdy nemutuje ten původní. To je častý zdroj chyb, když někdo zapomene vytvořit kopii objektu nebo pole. Správně: return ...state, items: [...state.items, newItem] . Špatně: state.items.push(newItem). Taková mutace vede k tomu, že komponenty nezjistí změnu a uživatel nevidí aktualizovaná data.

Jak na efektivní ladění bez zbytečných pokusů Největší chybou, kterou při debugování děláme, tato stránka je, že se snažíme opravit problém bez pochopení jeho příčiny. Místo hádání, proč proměnná nemá očekávanou hodnotu, využijte breakpointy. V záložce Sources si otevřete příslušný soubor, klikněte na číslo řádku a nastavte bod přerušení. Když se kód spustí a narazí na tento bod, běh se zastaví. V pravém panelu pak vidíte hodnoty všech proměnných v aktuálním rozsahu. Můžete také procházet kód rekonstrukce koupelny krok za krokem za krokem, vstupovat do funkcí nebo je přeskočit. Tento postup vám dá přesnou představu o tom, co se v daném okamžiku děje.

Než začnete psát první workflow, ujasněte si, co má pipeline skutečně řešit. GitHub Actions je jen nástroj, který spouští skripty, ale hodnotu mu dáte až správně zvolenými kroky. Nejčastější chybou bývá snaha o automatizaci všeho najednou – od buildu přes testy až po nasazení na produkci. Výsledkem je pak pipeline, který je pomalý, křehký a jeho údržba zabere víc času než samotný vývoj.
Při tvorbě workflow se vyhněte dvěma typickým chybám. První je používání příliš otevřených nebo naopak příliš úzkých triggerů. Například spouštět pipeline při každém komentáři v issue je zbytečné, ale omezit se jen na hlavní větev zase riskujete, že chyby odhalíte až po sloučení pull requestu. Ideální je kombinace událostí: push nábytek na míru hlavní větev a pull requesty. Druhou častou chybou je spoléhat se na dlouhé sekvenční kroky místo paralelizace. Pokud testy nezávisí na sobě, rozdělte je do více jobů. Ušetříte tím čas i peníze, protože běh pipeline bude rychlejší.