[custom_add_property_button]
[custom_sign_button]

Přechod z MySQL na PostgreSQL, který většina podcení

Nakonec myslete na to, že dokumentace je živý artefakt. Stanovte odpovědnost – backendový vývojář, který endpoint vytvoří, by měl také aktualizovat popis. Pravidelně kontrolujte, že příklady v dokumentaci odpovídají reálným odpovědím. Automatizovaný skript, který porovná schéma se skutečnou odpovědí, vám ušetří ruční kontrolu. Když dokumentace přestane lhát, frontend přestane hádat a spolupráce se stane plynulou – což je přesně to, co od dobré dokumentace očekáváte.

Přechod z MySQL na PostgreSQL bývá často podceňovaný. Mnoho týmů předpokládá, že stačí exportovat data, importovat je a upravit pár dotazů. Realita je ale jiná: rozdíly v datových typech, chování transakcí a dokonce i v tom, jak oba systémy řadí text, dokážou připravit nepříjemná překvapení. Pokud se na migraci nepřipravíte, místo plynulého přechodu získáte dny ladění a noční volání kvůli nefunkční aplikaci.

Když máte skript stabilní, přidejte mu logování. Zapisujte si do textového souboru, co se stalo: kdy se co přesunulo nebo proč se něco nepovedlo. To se hodí zejména u automatizací, které spouštíte naplánovaně třeba jednou denně. Bez logu totiž nezjistíte, že se něco pokazilo, dokud nepřijdou na řadu data.

Závěrem: pokrytí měřte, ale neuctívejte. Užitečné je jako zpětná vazba při vývoji — pomáhá najít zapomenuté větve a udržovat testy v souladu s kódem. Přestává být užitečné, když se stane cílem samo o sobě. Sledujte ho v kontextu, kombinujte s jinými technikami a hlavně se ptejte, co testy skutečně ověřují. Pokud je odpověď „měříme pokrytí, protože máme pokrytí”, je čas změnit přístup.

Při práci s databází nebo soubory se vyhněte reálným závislostem. Místo toho použijte rozhraní a vytvořte si falešné implementace nebo použijte mockovací knihovnu. Pokud testujete metodu, která ukládá do databáze, nechte ji pracovat s in-memory databází nebo s dočasnými soubory, které po testu smažete. Jinak se vaše testy stanou pomalé a nespolehlivé, protože jejich výsledek závisí na stavu prostředí. Navíc, pokud testy běží paralelně, může dojít ke konfliktům mezi soubory či záznamy.

Dalším krokem je propojení s API nějaké služby, kterou používáte. Python k tomu má přímou podporu a stačí pár řádků, abyste stáhli data, zpracovali je a odeslali odpověď. Zde si dejte pozor na limity požadavků ze strany serveru — pokud budete posílat příliš mnoho dotazů najednou, dostanete zablokovaný přístup.

Typická chyba, kterou vidím u týmů, je honba za stonásobným pokrytím za každou cenu. Programátoři pak píší testy, které jen volají funkce s triviálními vstupy, nebo používají nástroje, které uměle navyšují čísla — třeba provádějí kód přes reflexi nebo vypínají kontroly. Výsledkem je, že metrika vypadá skvěle, ale testy nechytí jedinou skutečnou chybu. Stejně problematické je i pokrytí, které se měří jen v jednom momentě — po změně kódu je často neaktuální. Doporučuji měřit pokrytí průběžně v CI a nastavit si minimální hranici, ale jen jako pojistku proti výraznému propadu, ne jako cíl.

Jak se vyhnout typickým pastím při správě stavu Častým nešvarem je ukládání odvozených dat do Reduxu. Pokud máte pole položek a potřebujete filtrovaný seznam, neukládejte dva stavy. Uložte jen surová data a filtr, a výsledek si spočítejte selektorem. Tím zajistíte, že data zůstanou konzistentní a nemusíte řešit synchronizaci. K tomu použijte knihovnu pro selektory, jako je reselect, která si výsledek pamatuje a přepočítá jen při změně vstupů.

Pokrytí kódu testy je jedno z nejčastěji špatně interpretovaných čísel ve vývoji softwaru. Mnoho týmů ho bere jako cíl, ale ve skutečnosti jde o nástroj, který má odhalit slabá místa. Základní metrika, která se počítá jako poměr řádků, větví nebo funkcí pokrytých testy k celkovému počtu, vám řekne, kolik kódu se při testech spustí. Neřekne vám ale, zda testy skutečně ověřují to podstatné — jestli kontrolují správné chování, okrajové případy nebo chybové stavy. Proto je třeba měřit nejen počet řádků, ale i kvalitu testů a jejich schopnost odhalit chyby.

Třetí situace, kdy je pokrytí spíše škodlivé, je porovnávání mezi týmy nebo projekty. Čísla se dají snadno zmanipulovat a neberou v úvahu specifika domény. Testy pro bankovní převod budou vždy složitější než testy pro zobrazení statické stránky. Místo celkového procenta se proto zaměřte na pokrytí kritických částí — tam, kde chyba stojí hodně peněz nebo ohrozí bezpečnost. Dobrý test je takový, který selže, když dojde k reálné chybě. Pokrytí vám to neřekne, ale můžete si to ověřit mutačním testováním nebo tím, že do kódu záměrně vložíte chybu a podíváte se, jestli testy zareagují.

Please Sign In Before Adding a Property Or Sign Up If You Don't Have An Account