Jak zavést efektivní git workflow pro váš tým
Dalším důležitým měřítkem je pokrytí funkcí nebo metod. To vám řekne, kolik veřejných metod bylo voláno. Užitečné je také sledovat pokrytí změn v rámci pull requestů, nikoli jen celkové číslo. Zaměřte se na to, zda nově přidaný kód má testy, a ne na to, jestli celkový projekt dosahuje 80 %. Tímto způsobem odhalíte netestované části hned v začátku, kdy je oprava levnější.
Jak vyvážit vrstvy a nezapomenout na integrační testy Integrační testy by měly tvořit asi 10–20 % celé sady. Jejich úkolem je ověřit spolupráci mezi komponentami, například mezi službou a databází, nebo mezi frontendem a backendem. Nepište je ale pro každou metodu – to by je zpomalilo. Vyberte si klíčové scénáře, které propojují více vrstev. Pro testy s databází používejte izolované prostředí, nejlépe transakce, které se po každém testu vrátí zpět. Vyhněte se sdílenému stavu mezi testy – paralelní běh by pak selhával náhodně.
Při navrhování pyramidy začněte analýzou rizik. Zaměřte se na kritické části systému, jako je zpracování plateb, přihlašování nebo výpočet cen. Pro ně napište jednotkové testy s robustními mocky. Ujistěte se, že testy netestují implementaci, ale chování. To znamená, že test by měl projít i po refaktoringu vnitřní struktury třídy, pokud se nemění vnější rozhraní. Typická chyba: test ověřuje, že byla zavolána metoda na mocku, místo aby kontroloval výsledek. Takový test je příliš svázaný s detaily a snadno se rozbije.
Klíčové je sledovat pokrytí v kontextu rizik a složitosti. Použijte metriky jako cyklomatickou složitost k identifikaci nejkritičtějších metod a pro ně nastavte přísnější požadavky na pokrytí. Pro jednoduché části kódu si vystačíte s nižším číslem. Místo celkového procenta si definujte pravidla: nový kód musí mít alespoň 80% pokrytí větví, ale starší kritické části musí mít 100 % pro klíčové scénáře. Když testy začnou bránit refaktorování nebo vývoji nových funkcí, protože se neustále upravují kvůli překročení limitu, je to známka, že jste za hranicí užitečnosti.
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.
Začít kariéru v IT jako vývojář je dnes jednodušší i těžší zároveň. Na jedné straně je poptávka po programátorech stále vysoká, na straně druhé roste počet lidí, kteří se do oboru chtějí dostat. Klíčem k úspěchu není jen umět psát kód, ale také vědět, jak se prezentovat a kde hledat první příležitost. Tento článek vám ukáže, jak na to bez zbytečných iluzí.
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.
Další pastí je verzování samotného kódu podle data, nikoliv podle sémantické verze. Pokud přidáváte nové funkce, ale zároveň měníte staré, zvyšte major verzi. Pokud jen opravujete chyby, zvyšte minor verzi. Pokud měníte jen interní detaily, zvyšte patch. Toto pravidlo musí být napsané v dokumentaci projektu a každý člen týmu ho musí dodržovat. Bez toho se rychle stane, že dvě verze knihovny mají stejné číslo, ale různé chování, což je nejhorší možný scénář.
Pokud nedostanete odpověď nebo vás odmítnou, neberte to osobně. Trh je plný firem, které hledají různé typy lidí. Zkuste to znovu, ale poučte se: upravte životopis, dodělejte projekt, naučte se novou technologii. Každý neúspěch je zpětná vazba. Důležité je vydržet a posílat dál. Často se první práce najde přes známé – dejte vědět na sociálních sítích, že hledáte, a nebojte se zeptat v komunitních skupinách. Osobní doporučení má velkou váhu.
Nejjednodušší a pro menší týmy nejpraktičtější je model trunk-based development. Všechny změny směřují do hlavní větve, ale každá funkce nebo oprava dostane vlastní krátkodobou větev. Pravidlo zní: jedna větev = jeden úkol. Větve pojmenovávejte podle čísla úkolu nebo srozumitelného popisu, například feature/login-form nebo fix/empty-state. Hlavní větev zůstává vždy stabilní a připravená k nasazení.