MySQL a PostgreSQL: Jak na migraci bez ztráty dat

From IT-Core
Revision as of 12:36, 29 August 2026 by NonaSimcha8 (talk | contribs) (Created page with "Když testy začnou bolet: časté chyby a jejich řešení Nejčastější chybou bývá testování soukromých metod nebo závislost na externích zdrojích, jako je databáze nebo souborový systém. Místo toho se zaměřte na veřejné rozhraní a izolujte závislosti pomocí rozhraní a falešných implementací (například s knihovnou Moq). Vyhnete se tak pomalým a nestabilním testům. Další problém nastává, když testy sdílejí stav – pokud jedna test...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Když testy začnou bolet: časté chyby a jejich řešení Nejčastější chybou bývá testování soukromých metod nebo závislost na externích zdrojích, jako je databáze nebo souborový systém. Místo toho se zaměřte na veřejné rozhraní a izolujte závislosti pomocí rozhraní a falešných implementací (například s knihovnou Moq). Vyhnete se tak pomalým a nestabilním testům. Další problém nastává, když testy sdílejí stav – pokud jedna testovací třída mění statické proměnné, může to ovlivnit výsledky jiných testů. Používejte atribut [SetUp] pro inicializaci čerstvých dat před každým testem.

Testovací pyramida bývá nejčastěji vykreslována jako tři patra: široká základna jednotkových testů, uprostřed testy integrační a na vrcholu malý počet testů end-to-end. Tahle představa je užitečná, ale v praxi ji týmy často berou příliš doslova. Mnohem lepší je chápat ji jako poměr rychlosti, spolehlivosti a nákladů na údržbu. Pokud testy v základně začnou zabíhat pomalu nebo se stanou křehkými, pyramida se deformuje a přestává plnit svůj účel.

Typickou chybou je snaha o 100% pokrytí kódu. Vysoké procento pokrytí neznamená, že testy ověřují správné chování. Zaměřte se raději na kritické části systému: platební tok, oprávnění uživatelů, zpracování chyb. Tyto oblasti by měly mít pokrytí vysoké, zatímco pomocné funkce nebo jednoduché gettery lze pokrýt s nižším rozsahem. Nezapomínejte také na negativní scénáře — otestujte, co se stane, když uživatel zadá špatný vstup nebo když služba selže.

Začněte krátkým shrnutím v rozsahu maximálně padesáti znaků. Toto shrnutí by mělo vystihovat podstatu změny, ideálně ve formátu „když…, tak…" nebo „aby…". Například „aby se přihlášení nezaseklo, když API vrátí prázdný token" je mnohem užitečnější než „fix login". Dlouhé zprávy rozdělte na více řádků – první řádek je nadpis, další řádky jsou podrobnosti. Většina nástrojů zobrazí jen první řádek, takže ten musí být srozumitelný sám o sobě.

První práce v IT není o tom znát všechny frameworky zpaměti. Firmy běžně přijímají juniory, kteří umí základy, ale hlavně přemýšlí a nebojí se zeptat. Nejčastější chyba? Čekat, až budete „připravení". Připravený nikdy nebudete. Místo toho se zaměřte na to, co už umíte, a na schopnost to prodat v pohovoru i v praktickém úkolu.

Na závěr si zvykněte na pravidlo „červený test před zeleným": nejprve napište test, který selže, pak teprve implementujte funkčnost. Tím zajistíte, že test opravdu něco ověřuje a není jen formální. Po každé změně kódu spusťte celou sadu testů, ne jen ten jeden, který právě píšete. Tím odhalíte neočekávané vedlejší efekty a udržíte si důvěru v rychlou zpětnou vazbu, kterou NUnit poskytuje.

Další pastí je míchání nesouvisejících změn do jednoho commitu. Pokud opravujete chybu a zároveň přejmenováváte proměnné, vznikne z toho nepřehledná směs. Budoucí čtenář nebude schopen rozlišit, co je podstatné. Dělejte menší commity, každý zaměřený na jednu logickou jednotku. Pokud potřebujete provést více změn, rozdělte je do více commitů, i kdyby to znamenalo více práce navíc. Historii pak lze snadno číst a případně vracet zpět.

Než začnete posílat životopisy, udělejte si malý průzkum trhu. Otevřete si nabídky práce a zjistěte, jaké technologie se opakují. Pokud jste se učili JavaScript, ale většina inzerátů v okolí hledá Java nebo Python, zvažte, jestli se nepřeorientovat. Nejde o to umět vše, ale trefit se do poptávky. Zároveň si ověřte, co je v daném regionu standard – někde dominují velké korporace, jinde startupové týmy. Každé prostředí má jiná očekávání.

Myslete také na kontext. Commitová zpráva není místo pro kompletní dokumentaci, ale měla by obsahovat odkazy na související úkoly nebo čísla ticketů, pokud je to ve vašem týmu zvykem. Důležité je, aby čtenář okamžitě pochopil, k čemu se změna vztahuje. Nepoužívejte ale zkratky bez vysvětlení – „oprava #123" neřekne nic, pokud čtenář nemá přístup k systému. Raději napište „oprava výpočtu daně (ticket #123)".

Čím se odlišit v technickém pohovoru Technický pohovor je často zkouška z logiky, ne z paměti. Očekávejte otázky na datové struktury, algoritmy a vysvětlení vašeho kódu. Typická past? Když začnete mluvit o složitých knihovnách, ale neumíte vysvětlit, proč jste je použili. Místo toho se připravte na jednoduché příklady – třeba reverzní řetězec nebo práce s polem – a nacvičte si, jak o nich přemýšlíte nahlas. Firmy hledají lidi, kteří se nezaseknou, ale hledají řešení.

Jednotkové testy v C# s frameworkem NUnit jsou dnes standardem pro ověřování izolované logiky. Základem je správně nastavený testovací projekt, který odkazuje na testovanou knihovnu. Než začnete psát první test, ujistěte se, že máte v projektu nainstalovaný balíček NUnit a také NUnit3TestAdapter, který umožňuje spuštění testů přímo z Visual Studia nebo příkazového řádku. Bez adaptéru testy sice zkompilujete, ale nespustíte.