Zásady čistého kódu v JavaScriptu pro každodenní praxi
페이지 정보

본문
Praktický postup pro unit testy reducerů Pro testy reducerů si připravte testovací rámec, například Jest nebo Vitest. Vytvořte si pomocnou funkci, která vytvoří nový store s vaším reducerem. Pak jednoduše zavoláte dispatch s danou akcí a porovnáte výsledný stav s očekávaným objektem. Pozor na to, abyste testovali pouze jeden slice stavu, ne celý store, jinak se testy stanou křehkými a změny v jiné části aplikace je rozbijí. Typická chyba je testovat reducer tak, že měníte původní stav – vždy vytvářejte nový objekt pomocí spread operátoru nebo Immutable.js, jinak se testy chovají nepředvídatelně.
Typickým problémem je rozdílné chování prázdných řetězců a NULL. MySQL ukládá prázdný řetězec jako '', zatímco PostgreSQL rozlišuje mezi '' a NULL – pokud aplikace spoléhá na prázdný řetězec, může dojít k logickým chybám. Dále si pohlídejte práci s celočíselnými děleními: v MySQL je 5/2 rovno 2, v PostgreSQL je to 2.5, což může rozbít výpočty. Proveďte důkladný test všech dotazů, zejména těch, které používají agregační funkce, GROUP BY nebo poddotazy.
Jak využít standardní knihovny a vyhnout se běžným chybám Python má vestavěné moduly jako `os` a `shutil`, které umožňují práci se soubory a složkami. Například `os.listdir()` vrátí obsah složky, `shutil.move()` přesune soubor. Typickou chybou začátečníků je nezohledňovat různé operační systémy – cesty k souborům se liší (Windows používá zpětná lomítka, Linux a macOS lomítka). Používejte proto funkci `os.path.join()`, která správně sestaví cestu podle systému.
Postup převodu schématu a dat Pro převod schématu použijte nástroj jako pgloader nebo ruční skript. Pokud migrujete ručně, začněte vytvořením databáze v PostgreSQL a postupně vytvářejte tabulky. Nahraďte AUTO_INCREMENT za SERIAL nebo GENERATED AS IDENTITY, upravte ENUM na CREATE TYPE, a převeďte datumové a časové typy podle potřeby. Následně exportujte data z MySQL do CSV nebo SQL souboru a importujte je pomocí COPY nebo psql. Vždy před importem vypněte kontroly cizích klíčů, abyste předešli chybám pořadí.
Dalším krokem je rozdělení kódu do malých funkcí. Pokud funkce dělá více než jednu věc, rozdělte ji. Například místo jednoho bloku, který validuje formulář, ukládá data a posílá notifikaci, vytvořte tři samostatné funkce. Výhodou je snadnější testování a opětovné použití. Pozor ale na přehnané členění – příliš mnoho jednorázových funkcí zbytečně komplikuje čtení. Ideální je najít rovnováhu.
Na sprint review ukazujte hotové funkce, ne powerpoint. Zákazník nebo stakeholder si může věci vyzkoušet a dát zpětnou vazbu. chyba: tým ukazuje „skoro hotovo" a pak opravuje chyby po sprintu. Definice hotového (Definition of Done) musí být jasná a odsouhlasená – třeba „kód je otestovaný, prošel code review a je nasazený na testovací prostředí". Pokud DoD porušíte, sprint se počítá jako nedodaný.
Když test napíšete, spusťte ho. Pokud projde, zkuste ho schválně rozbít změnou očekávané hodnoty. Tím si ověříte, že test skutečně funguje a není jen formální. Poté hodnotu vraťte zpět. Tento postup je dobré si zapamatovat, protože odhaluje falešně zelené testy, které testují špatnou věc. Jakmile máte první test hotový, pokračujte dalším. Postupně získáte jistotu a testování se stane přirozenou součástí vašeho úložné prostory v malém bytěývoje.
Během migrace se vyhněte přímému připojení aplikace k nové databázi bez předchozího ověření. Spusťte paralelně obě databáze a porovnejte výstupy na vzorku dat. Dbejte na konfiguraci připojovacího řetězce – PostgreSQL vyžaduje jiné ovladače a často i úpravu konektorů v aplikaci. Po úspěšném importu spusťte ANALYZE, aby optimalizátor měl aktuální statistiky, a ověřte, že indexy fungují správně. Nezapomeňte také na migraci uživatelských účtů a oprávnění – PostgreSQL používá role, zatímco MySQL uživatele.
Při testování async akcí se vyhněte skutečným HTTP voláním. Místo toho použijte mock funkce, které vrací předem definovaná data. Tím zajistíte, že testy nejsou závislé na síti nebo stavu serveru. Dbejte na to, aby mocknuté odpovědi měly stejný tvar jako reálná data, jinak testy projdou, ale v produkci selžou při mapování odpovědi. Také testujte chybové stavy: jak se reducer chová, když API vrátí chybu, a zda async akce dispatchuje správnou akci pro chybu (např. fetchFailure).
Migrace databáze z MySQL na PostgreSQL je častým krokem při škálování aplikací nebo při přechodu na open-source technologie s bohatšími funkcemi. Ačkoli oba systémy patří mezi relační databáze, liší se v syntaxi, datových typech i chování při transakcích. Přímý export a import dat obvykle nefunguje bez úprav, takže je nutné postupovat systematicky a otestovat každý krok.
Typickým problémem je rozdílné chování prázdných řetězců a NULL. MySQL ukládá prázdný řetězec jako '', zatímco PostgreSQL rozlišuje mezi '' a NULL – pokud aplikace spoléhá na prázdný řetězec, může dojít k logickým chybám. Dále si pohlídejte práci s celočíselnými děleními: v MySQL je 5/2 rovno 2, v PostgreSQL je to 2.5, což může rozbít výpočty. Proveďte důkladný test všech dotazů, zejména těch, které používají agregační funkce, GROUP BY nebo poddotazy.
Jak využít standardní knihovny a vyhnout se běžným chybám Python má vestavěné moduly jako `os` a `shutil`, které umožňují práci se soubory a složkami. Například `os.listdir()` vrátí obsah složky, `shutil.move()` přesune soubor. Typickou chybou začátečníků je nezohledňovat různé operační systémy – cesty k souborům se liší (Windows používá zpětná lomítka, Linux a macOS lomítka). Používejte proto funkci `os.path.join()`, která správně sestaví cestu podle systému.
Postup převodu schématu a dat Pro převod schématu použijte nástroj jako pgloader nebo ruční skript. Pokud migrujete ručně, začněte vytvořením databáze v PostgreSQL a postupně vytvářejte tabulky. Nahraďte AUTO_INCREMENT za SERIAL nebo GENERATED AS IDENTITY, upravte ENUM na CREATE TYPE, a převeďte datumové a časové typy podle potřeby. Následně exportujte data z MySQL do CSV nebo SQL souboru a importujte je pomocí COPY nebo psql. Vždy před importem vypněte kontroly cizích klíčů, abyste předešli chybám pořadí.
Dalším krokem je rozdělení kódu do malých funkcí. Pokud funkce dělá více než jednu věc, rozdělte ji. Například místo jednoho bloku, který validuje formulář, ukládá data a posílá notifikaci, vytvořte tři samostatné funkce. Výhodou je snadnější testování a opětovné použití. Pozor ale na přehnané členění – příliš mnoho jednorázových funkcí zbytečně komplikuje čtení. Ideální je najít rovnováhu.
Na sprint review ukazujte hotové funkce, ne powerpoint. Zákazník nebo stakeholder si může věci vyzkoušet a dát zpětnou vazbu. chyba: tým ukazuje „skoro hotovo" a pak opravuje chyby po sprintu. Definice hotového (Definition of Done) musí být jasná a odsouhlasená – třeba „kód je otestovaný, prošel code review a je nasazený na testovací prostředí". Pokud DoD porušíte, sprint se počítá jako nedodaný.
Když test napíšete, spusťte ho. Pokud projde, zkuste ho schválně rozbít změnou očekávané hodnoty. Tím si ověříte, že test skutečně funguje a není jen formální. Poté hodnotu vraťte zpět. Tento postup je dobré si zapamatovat, protože odhaluje falešně zelené testy, které testují špatnou věc. Jakmile máte první test hotový, pokračujte dalším. Postupně získáte jistotu a testování se stane přirozenou součástí vašeho úložné prostory v malém bytěývoje.
Během migrace se vyhněte přímému připojení aplikace k nové databázi bez předchozího ověření. Spusťte paralelně obě databáze a porovnejte výstupy na vzorku dat. Dbejte na konfiguraci připojovacího řetězce – PostgreSQL vyžaduje jiné ovladače a často i úpravu konektorů v aplikaci. Po úspěšném importu spusťte ANALYZE, aby optimalizátor měl aktuální statistiky, a ověřte, že indexy fungují správně. Nezapomeňte také na migraci uživatelských účtů a oprávnění – PostgreSQL používá role, zatímco MySQL uživatele.
Při testování async akcí se vyhněte skutečným HTTP voláním. Místo toho použijte mock funkce, které vrací předem definovaná data. Tím zajistíte, že testy nejsou závislé na síti nebo stavu serveru. Dbejte na to, aby mocknuté odpovědi měly stejný tvar jako reálná data, jinak testy projdou, ale v produkci selžou při mapování odpovědi. Také testujte chybové stavy: jak se reducer chová, když API vrátí chybu, a zda async akce dispatchuje správnou akci pro chybu (např. fetchFailure).
- 이전글파워약국 발기부전, 생각보다 가까운 문제 놓치면 위험한 신호 — 검증된 해결 방법 26.08.22
- 다음글드래곤 아이코스 시리즈 역사와 발전 과정 26.08.22
댓글목록
등록된 댓글이 없습니다.