Než napíšeš první kód: Jak se zorientovat ve světě API
Jak si usnadnit ladění a neztratit se v chybových hláškách Když API neodpovídá podle očekávání, podívejte se na stavový kód odpovědi. Čísla jako 200 nebo 201 znamenají úspěch, 400 je špatně poslaný požadavek a 401 nebo 403 signalizují problém s oprávněním. Nezačínejte tedy přepisovat celý kód, ale nejprve si nechte vypsat celou odpověď na konzoli. Často najdete přímo v těle odpovědi popis chyby, který vám řekne, co přesně je špatně. Pokud takový popis chybí, vraťte se k dokumentaci a porovnejte, jestli používáte správné názvy parametrů. Jedna překlepnutá čárka v JSON souboru dokáže zastavit celý proces.
Největší bariérou bývá daily standup. Místo patnáctiminutového sladění se z něj stane půlhodinová schůzka, barvy stěn do obýváku na které každý referuje, co dělal včera. To není smysl. Daily má odhalit překážky a zajistit, aby se tým sám zorganizoval. Zkuste si na první dva sprinty vzít časomíru a limit devět minut. Když se někdo drží podrobností, domluvte si řešení po skončení, ne na poradě. Tým si rychle osvojí, že daily není reporting, ale nástroj pro rozhodování.
Po dokončení migrace je klíčové spustit sadu regresních testů. Porovnejte počty záznamů, kontrolní součty u vybraných sloupců a výsledky komplexních dotazů. Nezapomeňte na pohledy, triggery a uložené funkce – syntaxe se v PostgreSQL liší, takže je budete muset přepsat. Teprve když jsou testy v pořádku, můžete přepnout aplikaci. Mějte v záloze původní MySQL databázi a plán návratu, pokud by se v produkci objevily problémy. Migrace je úspěšná až ve chvíli, kdy nový systém běží stabilně alespoň týden bez zásadních zásahů.
Jak psát první testy a čemu se vyhnout Funkce označené jako testy začínají slovem test_. V nich používáte běžné příkazy assert, které ověřují chování. Například ověříte, že funkce vrací očekávanou hodnotu. Pytest na rozdíl od unittestu nevyžaduje třídy ani dědičnost. Stačí obyčejné funkce. Typická chyba začátečníků: testovat více věcí najednou. Když selže první assert, zbytek se nespustí. Proto pište jeden test pro jednu logickou jednotku. Pokud potřebujete připravit data, použijte fixture – funkci s dekorátorem @pytest.fixture. Ta se spustí před testem a může vracet objekty, které test použije.
Druhý častý problém je autentizace. Mnoho API vyžaduje klíč nebo token, který pošlete v hlavičce požadavku. Nikdy ho nevkládejte přímo do adresy URL, protože se může uložit do logů serveru nebo do historie prohlížeče. Místo toho si vytvořte proměnnou prostředí nebo konfigurační soubor, který neuložíte do verzovacího systému. Pokud API vyžaduje token s omezenou platností, nastavte si automatické obnovování. Jinak po čase přestanou požadavky fungovat a vy budete hledat chybu tam, kde není.
Kdy je lepší migraci odložit nebo ji provést postupně? Než se pustíte do přenosu stovek gigabajtů, zkontrolujte, jak vaše aplikace používá specifické funkce MySQL. Například FULLTEXT vyhledávání, REPLACE INTO nebo GROUP BY s netriviálními aliasy se v PostgreSQL chovají odlišně. Pokud aplikace používá pokročilé JSON operace, PostgreSQL je na tom výrazně lépe, ale pokud sázíte na MySQL specifickou optimalizaci dotazů, čeká vás ladění výkonu. Doporučuji zvolit postupnou migraci: nejprve přesunete nejsložitější tabulky a ověříte chování v testovacím prostředí. Teprve poté přesouváte zbytek dat. Tím se vyhnete situaci, kdy zjistíte chybu až po přepnutí produkčního provozu.
Klíčem k efektivnímu verzování je pravidelný rebase nebo merge z hlavní větve do vaší feature větve. Pokud pracujete na větvi déle než den, stačí, když se hlavní větev posune o pár commitů, a vy najednou řešíte konflikty, které by se při průběžném aktualizování vyřešily samy. Ideální je provést rebase každé ráno a po každém dokončení dílčího úkolu. Při rebase se vyhněte přepisování historie, pokud už jste větev sdíleli s kolegy. Místo toho použijte merge, který zachovává kontext a snižuje riziko, že někomu rozbijete lokální kopii.
Při plánování migrace databáze z MySQL na PostgreSQL se vyplatí začít mapováním rozdílů v datových typech. MySQL používá pro logické hodnoty typ TINYINT(1), zatímco PostgreSQL nabízí nativní typ BOOLEAN. Automatické převody v nástrojích často selhávají u polí jako ENUM, která v PostgreSQL fungují jako uživatelsky definované typy. Před samotným exportem si proto projděte databázové schéma a připravte si skripty, které převedou typy s ohledem na NULL hodnoty a výchozí nastavení. Nejčastější chybou bývá spoléhání na to, že dump z MySQL načtete do PostgreSQL bez úprav – výsledkem je pak nekonečná řada chybových hlášek.
If you loved this article so you would like to get more info about wiki.philipphudek.De generously visit the internet site.