5 chyb, kterých se vyvarovat při startu s verzováním > 자유게시판

본문 바로가기

자유게시판

5 chyb, kterých se vyvarovat při startu s verzováním

페이지 정보

profile_image
작성자 Chris Langlois
댓글 0건 조회 50회 작성일 26-08-29 20:40

본문

Začněte tím, že tokeny nesmí obsahovat citlivá data. JWT je base64 zakódovaný, ne šifrovaný, takže si ho kdokoli může rozebrat a přečíst. Mít v payloadu e-mail, roli nebo dokonce heslo je pozvánka k problému. I když je token podepsaný, data v něm vidí každý, kdo se k němu dostane. Pokud potřebujete předávat citlivé údaje, šifrujte payload zvlášť, nebo je přenášejte přes jiný kanál. Typická chyba je také ukládat token do localStorage – jakmile se tam dostane skript třetí strany, má přístup k celé relaci. Mnohem bezpečnější je držet token jen v paměti aplikace, případně v httpOnly cookie, která není dostupná z JavaScriptu.

Testování jednotek není o tom napsat co nejvíce testů, ale o tom, aby testy měly skutečnou vypovídací hodnotu. Pokud se vám testy stávají přítěží, protože je musíte často opravovat kvůli změnám v kódu, pravděpodobně testujete příliš mnoho interních detailů místo veřejného chování. Zaměřte se na to, co má třída dělat, ne na to, jak zařídit malou kuchyni to dělá. Tento přístup vede k robustnějším testům a čistšímu návrhu aplikace.

Nezapomeňte také na rozdíly v práci s transakcemi a zámky. PostgreSQL používá MVCC, takže čtenáři neblokují zapisovatele – to je výhoda. Na druhou stranu, pokud máte dlouhé transakce, může dojít k nárůstu mrtvých řádků a vyžadovat častější VACUUM. V MySQL se zase častěji setkáte s deadlocky při zápisu. Proto před migrací projděte logy a identifikujte dlouhé dotazy. Prakticky to znamená, že po migraci spustíte VACUUM ANALYZE a nastavíte autovacuum podle velikosti databáze. Bez toho se výkon po pár dnech provozu zhorší.

Dalším kritickým bodem je práce s autoincrementem. MySQL používá AUTO_INCREMENT, PostgreSQL zase SEQUENCE. Při migraci je nutné sekvence vytvořit a nastavit jejich aktuální hodnotu na maximum existujícího primárního klíče. Pokud tuto kapitolu přeskočíte, nové záznamy budou kolidovat s těmi starými a aplikace spadne na duplicitním klíči. Praktickým postupem je vygenerovat sekvence pomocí příkazu CREATE SEQUENCE a poté je svázat s sloupci. Pozor i na to, že při použití nástroje pg_dump se sekvence vytvářejí automaticky, ale jejich počáteční hodnota se ne vždy shoduje s reálným stavem dat.

Druhý typický problém souvisí se sítí. Kontejner má vlastní IP adresu, která se mu může změnit po restartu. Abyste se k aplikaci připojili stabilně, použijte mapování portů: -p 8080:80 přesměruje port 8080 hostitele na port 80 v kontejneru. Bez mapování se k aplikaci vůbec nedostanete, pokud neznáte aktuální IP. A pokud potřebujete propojit více kontejnerů, vytvořte síť docker network create a kontejnery spouštějte s parametrem --network. Vyhnete se tak nesmyslnému používání IP adres a zpřehledníte celou architekturu.

Kdy je lepší migraci odložit nebo ji provést postupně? Než se pustíte do přenosu stovek gigabajtů, zkontrolujte, jak vaše aplikace používá specifické funkce MySQL. Například FULLTEXT vyhledávání, REPLACE INTO nebo GROUP BY s netriviálními aliasy se v PostgreSQL chovají odlišně. Pokud aplikace používá pokročilé JSON operace, PostgreSQL je na tom výrazně lépe, ale pokud sázíte na MySQL specifickou optimalizaci dotazů, čeká vás ladění výkonu. Doporučuji zvolit postupnou migraci: nejprve přesunete nejsložitější tabulky a ověříte chování v testovacím prostředí. Teprve poté přesouváte zbytek dat. Tím se vyhnete situaci, kdy zjistíte chybu až po přepnutí produkčního provozu.

Při samotném přenosu dat vyzkoušejte dva přístupy: export a import pomocí pg_dump a také použití ETL nástrojů, které podporují oba systémy. U větších databází se vyplatí rozdělit tabulky na menší celky a přenášet je paralelně. Typickou chybou je přenos všech dat v jednom obřím SQL souboru, což vede k vyčerpání paměti a pádům. Pokud databáze obsahuje binární soubory, Should you loved this post and you want to receive details concerning náBytek Na Míru kindly visit our own web site. ověřte, že je přenesete v režimu BYTEA a že nastavení klienta a serveru je kompatibilní. Jinak se může stát, že se soubory po importu poškodí.

Na závěr si osvojte pravidlo, že jeden kontejner = jedna služba. Nesnažte se do jednoho kontejneru natlačit webový server, databázi i frontend. Místo toho použijte Docker Compose, který vám umožní definovat více služeb v jednom souboru a spouštět je jedním příkazem. Díky tomu snadno rozjedete celý stack a budete mít jasno v tom, co kde běží. Nebojte se experimentovat, ale úložné prostory v malém bytěždy si přečtěte dokumentaci konkrétního obrazu — mnoho problémů pramení z toho, že začátečník nezná základní konfiguraci, kterou obraz vyžaduje.

Proč nestačí jen číst červený text Chybová hláška jako „TypeError: Cannot read properties of undefined" vám řekne, že přistupujete k vlastnosti na hodnotě, která neexistuje. Ale rady pro rekonstrukcič je undefined? Tady přichází na řadu funkce breakpointů. Místo hádání, kde se to stalo, otevřete kartu Sources, najdete příslušný soubor a kliknutím na číslo řádku nastavíte bod přerušení. Při opětovném spuštění kódu se provádění zastaví přesně na tomto místě a vy můžete prozkoumat hodnoty všech proměnných v daném okamžiku.

댓글목록

등록된 댓글이 없습니다.