Zásadní rozdíl najdete také v práci s transakcemi a zámky. PostgreSQL používá MVCC, což znamená, že čtení neblokuje zápis a naopak. To je výhoda, ale vyžaduje to pravidelné spouštění VACUUM, aby se databáze nezanášela mrtvými řádky. Po migraci nastavte autovacuum tak, aby odpovídalo zátěži vaší aplikace. Dále zkontrolujte, zda vaše aplikace nepoužívá MySQL specifické příkazy jako INSERT IGNORE nebo ON DUPLICATE KEY UPDATE – v PostgreSQL je musíte nahradit pomocí INSERT ... ON CONFLICT DO NOTHING nebo DO UPDATE.<br>
<br>
<br>
<br>
<span style="font-weight: 800;">Další zásadou je krátká</span> doba platnosti tokenu. Nastavte expiraci na minuty, maximálně na hodiny, nikdy ne na dny nebo týdny. Krátká expirace snižuje dopad případného úniku tokenu. Pro obnovení přístupu použijte takzvaný refresh token, který má delší životnost a je uložen na serveru. Tento token by měl být možné jednoduše zneplatnit, pokud uživatel odhlásí nebo změní heslo. Při jeho vydávání vždy snižujte počet použití a kontrolujte, zda není odcizený.<br>
<br>
<br>
<br>
Implementace JWT je jednoduchá, ale vyžaduje disciplínu. Důkladně testujte scénáře, kdy token vyprší, je poškozen nebo obsahuje neplatný podpis. Vytvořte si automatizované testy, které ověřují chování při neplatném tokenu. Sledujte také logy a mějte přehled o tom, kdo a kdy používá vaše API. Pokud narazíte na anomálie, okamžitě reagujte a zneplatněte všechny aktivní tokeny. JWT není samospasitelný, ale při správném použití výrazně zvyšuje bezpečnost vašeho rozhraní.<br>
<br>
<br>
<br>
Pro celkové rozvržení stránky sáhněte po Gridu. Definujte si základní mřížku pomocí grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)). Tento trik zajistí, že se sloupce automaticky přizpůsobí šířce obrazovky bez jediného media query. Můžete tak mít tři sloupce na desktopu, dva na tabletu a jeden na mobilu, aniž byste psali jediný řádek kódu navíc. Jen si dejte pozor, aby minimální šířka nebyla příliš velká – pak by na malých displejích zůstávaly jen jeden až dva sloupce, což nemusí být vždy žádoucí.<br>
<br>
<br>
<br>
Když už data máte, přichází na řadu jejich zpracování. Začněte tím, že z odpovědi vytáhnete konkrétní hodnotu – třeba jméno nebo číslo. Většina moderních jazyků má funkce, které převedou JSON na slovník nebo objekt, takže nemusíte parsovat ručně. Otestujte si, co se stane, když API vrátí prázdný výsledek – dobrý kód by měl umět ošetřit i tuto situaci. Doporučuji psát si krátké úryvky kódu, které pak můžete použít jako stavební bloky pro složitější aplikace.<br>
<br>
<br>
<br>
Na závěr si osvojte jednoduchou zásadu: když test poprvé spustíte, měl by selhat. Pokud hned projde, pravděpodobně jste ho napsali špatně. Zkuste test spustit s očekávanou chybou, třeba s nulou místo čísla, a sledujte, co se stane. Až test projde, zkuste do funkce úmyslně vložit chybu a ověřte, že test skutečně selže. Tento postup vám potvrdí, že test opravdu testuje to, co má. Psaní prvního unit testu není žádná věda – stačí začít u malé, čisté funkce a postupně si osvojit pravidlo: jeden test, jedna kontrola, jedno očekávání.<br>
<br>
<br>
<br>
<span style="font-weight: 800;">Praktický postup: od exportu</span> po ověření konzistence Pro samotný přenos dat použijte nástroj pgloader, který umí číst přímo z MySQL a zapisovat do PostgreSQL. Před spuštěním si připravte cílovou databázi s prázdným schématem – pgloader vytvoří tabulky automaticky, ale výsledné datové typy často nejsou optimální. Po importu proto zkontrolujte definice sloupců a upravte je ručně, zejména pokud jde o číselné typy (MySQL INT vs PostgreSQL INTEGER) nebo dekadická čísla. Pro velké tabulky zvažte rozdělení exportu na menší dávky, abyste předešli přetečení paměti serveru.<br>
<br>
<br>
<br>
Další důležitou oblastí jsou činnosti, které nejsou na první pohled vidět. Patří sem čtení dokumentace, hledání chyb v závislostech, ladění konfigurace, optimalizace výkonu, řešení problémů s verzovacím systémem nebo komunikace s kolegy ohledně rozhraní. Mnoho vývojářů tyto položky do odhadu nezahrnuje, protože je považuje za samozřejmost nebo si je neuvědomují. Přitom právě tyto činnosti často způsobují zpoždění. Stanovte si pravidlo: ke každému většímu úkolu připočítejte 20–30 % času navíc na neočekávané problémy a na činnosti, které nejsou vidět na první pohled.<br>
<br>
<br>
<br>
Jak si vytvořit rezervu, aniž byste vypadali neschopně Nejlepší způsob, jak skryté činnosti zohlednit, je vytvořit si strukturovaný seznam „typických vedlejších činností" pro svůj projekt. Například: každá integrace s cizím API zabere navíc čas na testování chybových stavů, každá změna databázového schématu vyžaduje migraci a otestování starých dat, každé uživatelské rozhraní musí projít kontrolou v různých prohlížečích. Pokud máte tento seznam, můžete si ho projít při každém odhadu a rychle doplnit položky, které byste jinak opomněli.