Důležité je také neměnit stav přímo. Vždy vracejte nový objekt, ať už pomocí spread operátoru, nebo immutable knihoven. Problém nastává, když zapomenete rozšířit vnořené pole a mutujete ho. Redux Toolkit používá Immer, který vám umožní psát mutace, ale pod kapotou vytvoří nový stav. Pokud používáte čistý Redux, dávejte pozor na ruční kopie. Pravidlem je: nikdy neměňte stav, který už je v store.
Dalším častým problémem jsou funkce a triggery. MySQL a PostgreSQL mají odlišnou syntaxi pro uložené procedury a triggery. Většinu kódu budete muset přepsat, a to nejen kvůli syntaxi, ale i kvůli rozdílnému chování transakcí. PostgreSQL klade větší důraz na atomicitu a izolaci, což může odhalit chyby v logice, které v MySQL nebyly vidět. Otestujte všechny kritické operace, zejména ty, které zapisují více tabulek najednou.
Pro efektivní práci si definujte tři základní typy akcí pro každou asynchronní operaci: požadavek, úspěch a selhání. Například při načítání uživatelů použijte akce FETCH_USERS_REQUEST, FETCH_USERS_SUCCESS a FETCH_USERS_FAILURE. V reduktoru pak vždy ošetřete všechny tři stavy. Většina chyb vzniká tehdy, když se řeší jen úspěšná větev a chyba skončí v tichém selhání, které uživatel nezjistí.
JWT je ale jen podepsaný řetězec. Jeho bezpečnost stojí na tom, jak ho vytvoříte a jak s ním zacházíte. Nejdůležitější je podpis. Vždy používejte asymetrický algoritmus, jako je RS256, a soukromý klíč držte výhradně na serveru. Veřejný klíč pak můžete distribuovat klientům, kteří jen ověřují podpis. Vyhněte se symetrickému HS256, pokud nemáte jen jednu službu, protože ten vyžaduje sdílení tajemství, které se snadno dostane tam, kam nemá. A nikdy, ale opravdu nikdy nepodepisujte token algoritmem, který si klient může zvolit sám – to je cesta k obejití celé ochrany.
Další pastí je doba platnosti. Krátká expirace je základ, ale samotná nestačí. Pokud token vyprší za pět minut, uživatel musí být neustále připojený, což je nepraktické. Řešením je pár tokenů: krátkodobý access token pro přístup k datům a dlouhodobý refresh token, který slouží jen k získání nového access tokenu. Refresh token držte na serveru v bezpečném úložišti a pravidelně ho obnovujte. Tím omezíte škody, když se nějaký token ztratí, a zároveň udržíte uživatele přihlášeného bez nutnosti zadávat heslo po každé akci.
Práce na projektu, kde se střídá čeština, angličtina a třeba i slovenština, není o tom, že si otevřete tři editory a budete kopírovat texty tam a zpátky. Skutečně funkční prostředí stojí na tom, že si hned na začátku oddělíte obsah od kódu a sjednotíte pravidla pro všechny, kdo do projektu sahají. Nejdřív si proto v repozitáři vytvořte složky podle jazyků, nikoli podle souborů – každý jazyk dostane vlastní adresář s identickou strukturou uvnitř. Tím zajistíte, že přidání nového překladu nikdy nerozbije navigaci ani odkazy mezi stránkami.
Redux přináší do Reactu předvídatelný stav, ale jeho špatné použití dokáže aplikaci spíš zkomplikovat. Místo hromady boilerplate kódu se zaměřte na to, co Redux skutečně řeší: sdílený stav napříč komponentami, který potřebuje více než jeden konzument. Pokud data používá jen jedna komponenta, nechte je v jejím lokálním stavu. Tím snížíte počet akcí a reduktorů a aplikace zůstane čitelná.
Typická chyba je měřit pokrytí globálně za celý projekt. Souhrnné číslo skryje rozdíly mezi moduly — kritická platební logika může mít 30 % pokrytí, zatímco jednoduché pomocné funkce mají 95 %. Výsledný průměr pak vypadá dobře, ale riziko zůstává. Místo toho si rozdělte kód na moduly nebo vrstvy a měřte pokrytí pro každou zvlášť. Dobré pravidlo je zaměřit se na jádro systému, které se mění nejméně, a přechody mezi moduly, kde vzniká nejvíc chyb. Sledujte trend v čase, ne jen okamžitou hodnotu — pokud pokrytí klesá, je to signál, že přibývá netestovaného kódu.
Nejprve si udělejte pořádek v databázovém schématu. MySQL často používá typy jako TINYINT, ENUM nebo automatické číslování pomocí AUTO_INCREMENT. PostgreSQL nabízí ekvivalenty, ale ne vždy se chovají stejně. Například ENUM v PostgreSQL je samostatný typ, který se hůře mění. Místo toho zvažte použití referenčních tabulek nebo prostého VARCHAR s CHECK omezením. Drobnosti, jako je rozdíl v ukládání booleovských hodnot (MySQL používá 0/1, PostgreSQL TRUE/FALSE), se projeví až při porovnávání dat.
Nejčastější chyba: používání any jako berličky Když narazíte na chybu, kterou nechcete řešit, nejjednodušší je napsat any. Tím ale vypnete kontrolu typů a vrátíte se zpět do JavaScriptu. Místo toho se snažte najít konkrétní typ – pokud nevíte, jaký tvar objektu přijde, použijte unknown a poté data zúžte pomocí podmínky. Například místo let data: any napište let data: unknown a před použitím ověřte, že jde o pole. Tento přístup vás donutí myslet na to, co skutečně od dat očekáváte.
If you have any kind of concerns pertaining to where and just how to make use of Http://x.kongminghu.com/home.php?mod=space&uid=734770, you can contact us at our internet site.
