Nejprve si vytvořte kompletní inventář schématu: seznam tabulek, indexů, pohledů, triggerů a uložených procedur. V MySQL se často používají typy jako TINYINT, ENUM nebo AUTO_INCREMENT, zatímco PostgreSQL preferuje SMALLINT, vlastní enum typy a sekvence. Při převodu datových typů dejte pozor na rozdíly v práci s řetězci: MySQL porovnává texty case-insensitive podle collation, PostgreSQL je case-sensitive, což může změnit výsledky dotazů.
Při testování si všímejte nejen funkčnosti, ale i použitelnosti (UX). Zapisujte každý nedostatek srozumitelně a reprodukovatelně: postup, očekávaný výsledek, skutečný výsledek. To je přesně to, co dělá profesionální tester. Výstup poté zpracujte do formátu, který vypadá jako z reálné firmy – s čísly verzí, prostředím a datem. Takový „portfolio projekt" ukáže na pohovoru víc než teoretická znalost.
Při psaní kódu ve Swiftu se vyplatí držet se konvencí: názvy proměnných začínají malým písmenem, typy velkým, a každá funkce by měla dělat jen jednu věc. Častou chybou začátečníků je snaha napsat celou aplikaci v jednom souboru – to vede k nepřehlednému kódu, který se špatně testuje a upravuje. Lepší je rozdělit aplikaci do menších celků pomocí struktur a tříd, případně využít architekturu MVVM, která je v komunitě nejrozšířenější. Důležité je také pochopit, jak funguje paměť – Swift používá automatické počítání referencí, ale to neznamená, že nemůžete vytvořit cyklickou závislost, která způsobí únik paměti.
Začněme u destructuring, tedy rozkladu objektů a polí. Místo opakovaného přístupu k vlastnostem jako user.name a user.age můžete použít const name, age = user;. Tím získáte přímé proměnné a kód je čitelnější. Pozor ale na to, že destructuring funguje jako kopie referencí – u vnořených objektů stále pracujete s původními daty. Pokud potřebujete hloubkovou kopii, musíte sáhnout po jiných metodách, třeba po strukturovaném klonování. Častou chybou je také destructuring z null nebo undefined – vždy se ujistěte, že vstupní hodnota existuje, jinak dostanete chybu.
Na co si dát pozor při práci s Dockerem Nejčastější chybou začátečníků je zapomínání na to, že kontejner je izolované prostředí. Jakmile kontejner smažete, přijdete o všechna data, která v něm vznikla. Pokud tedy potřebujete uchovávat databázi nebo uživatelské soubory, musíte použít tzv. svazky (volume). Příkaz docker run -v /cesta/na/disku:/data namapuje složku z počítače do kontejneru, takže data přežijí i smazání kontejneru. Druhou častou chybou je ignorování velikosti obrazů. Každý příkaz RUN v Dockerfile vytvoří novou vrstvu, a pokud instalujete zbytečné balíčky, obraz se nafoukne. Používejte oficiální obrazy s příponou -alpine (jsou mnohem menší) a kombinujte příkazy do jednoho řetězce pomocí &&, abyste snížili počet vrstev.
Na závěr proveďte zátěžové testy s reálnými daty, ne jen s testovacími vzorky. Srovnejte rychlost dotazů, které vaše aplikace používá nejčastěji, a optimalizujte indexy. PostgreSQL nabízí pokročilé typy indexů (GIN, BRIN), které mohou výrazně zrychlit fulltextové vyhledávání nebo rozsahové dotazy. Po nasazení do produkce sledujte logy pomalých dotazů a postupně dolaďte výkon. Migrace tak nebude jen technickým cvičením, ale příležitostí k vylepšení celé databázové vrstvy.
Třetí úskalí spočívá v tom, že lidé často spouští kontejnery interaktivně bez náležitého přepínače. Pokud potřebujete vejít do běžícího kontejneru a prozkoumat ho, použijte docker exec -it název_kontajneru sh. Bez -it se nedostanete do interaktivního shellu a budete jen bezradně koukat na výstup. Také si zvykněte na pravidelný úklid: příkaz docker system prune smaže nepoužívané obrazy, kontejnery a sítě, čímž uvolní místo na disku. Naopak se vyvarujte mazání kontejnerů, které právě běží – vždy je nejprve zastavte příkazem docker stop.
Začít kariéru v testování softwaru bez praxe je reálné, ale vyžaduje to cílenou přípravu. Firmy často hledají juniory, kteří znají základy testovacího procesu a mají analytické myšlení. Místo snění o první nabídce se zaměřte na to, co můžete udělat ještě dnes: naučte se, jak se píše testovací případ, a osvojte si nástroje pro hlášení chyb.
Praktický postup: od exportu 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.
