Verzování, které vás zradí: nejčastější chyby v Gitu
Než začnete psát test, napište si na papír tři věci: co funkce dělá, jaké vstupy přijímá a co očekáváte, že vrátí. Tento postup odhalí nejasnosti v zadání dřív, než napíšete první řádek kódu. Pokud zjistíte, že funkce dělá pět věcí najednou, rozdělte ji na menší části. Test pak bude jednodušší a lépe odhalí, kde je chyba, když něco nefunguje.
Než začnete psát kód další obrazovky, zastavte se u otázky, kterou si většina vývojářů pokládá až příliš pozdě: co vlastně uživatel na této obrazovce potřebuje udělat? Nestačí, že funkce funguje technicky správně. Pokud musí uživatel přemýšlet, kam kliknout, nebo se mu aplikace zdá nepřehledná, výsledkem je frustrace a odchod ke konkurenci. Základem dobrého UI/UX je pochopení kontextu – kdo aplikaci používá, na jakém zařízení a v jaké situaci. Teprve poté můžete řešit barvy, mezery nebo velikost tlačítek.
Když začnete testovat v Pythonu, pytest vypadá jako jasná volba. Krátké funkce, žádná třída, žádný boilerplate. Ale po pár týdnech narazíte na problém: testy občas projdou, občas ne, a vy netušíte proč. Nejčastější příčina? Testy nejsou izolované. Jedna funkce změní globální stav, druhá na to doplatí. Řešení je jednoduché – použijte fixture, ale ne jen tak ledajaké.
UI/UX pro vývojáře není o tom stát se designérem. Jde o to, abyste při psaní kódu mysleli na lidské chování. Dobrá aplikace je taková, kterou uživatel nemusí studovat. Když odstraníte tření mezi záměrem a akcí, uživatel se vrací sám a vy nemusíte řešit stížnosti na podpoře. Začněte u nejčastějšího scénáře, opravte nejkřiklavější chyby a postupně vylepšujte. Tento přístup se vám vrátí vyšší spokojeností i nižšími náklady na vývoj.
Konzistence a zpětná vazba jsou levnější než zákaznická podpora Uživatel se v aplikaci učí za pochodu. Pokud jedno tlačítko vypadá jako odkaz a druhý odkaz jako tlačítko, vzniká chaos. Držte se jednoduchých pravidel: klikatelné prvky mají vizuálně naznačenou interakci (změna barvy, stín, podtržení), a to jednotně napříč celou aplikací. Stejně důležitá je rychlá zpětná vazba po každé akci. Po uložení dat se musí objevit potvrzení, po chybě srozumitelná hláška, která říká, co se stalo a jak to opravit. Nikdy nepoužívejte jen technické chybové kódy typu „HTTP 500" – uživatel s nimi nic neudělá.
Na závěr jedno doporučení: nezkoušejte si pamatovat všechny příkazy. Stačí jich znát pět – init, add, commit, status, log – a zbytek si vyhledáte, až budete potřebovat. Klíčové je pochopit, že Git je nástroj pro práci s časem a větvemi, ne kouzelná hůlka. Čím víc ho budete používat, tím méně chyb budete dělat. A když už chybu uděláte, vězte, že Git vám téměř vždy dá možnost se vrátit.
Na závěr: testy reducerů a async akcí bez integračního prostředí jsou rychlejší a spolehlivější, ale vyžadují disciplínu v návrhu kódu. Pokud máte problém s mockováním API, zkuste oddělit čistou logiku od vedlejších efektů – vytvořte si funkci, která jen transformuje data, a thunk nechte jen na orchestrace. Tím se testy zjednoduší a vy se vyhnete nutnosti spouštět celou aplikaci. Pamatujte, že cílem není nahradit integrační testy, ale vytvořit si rychlou zpětnou vazbu pro běžný vývoj.
Co se stane, když testujete jen to, co znáte Mnoho začátečníků píše testy, které pokrývají jen šťastnou cestu – vstup je platný, funkce vrátí očekávaný výsledek. Jenže chyby se skrývají v krajních případech. Přidejte testy pro prázdný řetězec, nulovou hodnotu, záporné číslo nebo velmi velké číslo. Například funkce pro výpočet slevy by měla ošetřit, co se stane, když je sleva větší než 100 %. Tím odhalíte chyby, které by jinak zůstaly skryté až do produkce.
První unit test obvykle selže hned na začátku, protože se testuje příliš mnoho najednou. Místo abyste psali test pro celou aplikaci, vyberte jednu malou jednotku – nejlépe funkci nebo metodu, která má jasný vstup a výstup. Dobrý kandidát je funkce, která počítá slevu, validuje e-mail nebo převádí měnu. Taková funkce se snadno testuje, protože nemá vedlejší účinky – nečte ze souboru, nepřistupuje k databázi a nekomunikuje s uživatelem.
Práce s Gitem je dnes standardem i pro sólové vývojáře. Přesto většina začátečníků narazí na stejné zbytečné komplikace: ztratí práci, commitnou do špatné větve nebo neví, jak se vrátit k předchozímu stavu. Nejde o nedostatek talentu, ale o to, že se učíte příkazy bez kontextu. Tento článek vás provede základy tak, abyste se vyhnuli nejčastějším pastem, které vás mohou stát hodiny práce.
Prakticky začněte tím, že si pro každou obrazovku definujete jeden hlavní úkol. Pokud jich je víc, rozdělte je na primární a sekundární akce. Hlavní tlačítko (například „Uložit" nebo „Odeslat") by mělo být vizuálně dominantní a umístěné tam, kam se uživatel přirozeně dívá – obvykle vpravo dole nebo pod formulářem. Sekundární akce („Zrušit", „Zpět") musí být méně výrazné, ale stále dostatečně viditelné. Typickou chybou je, že vývojář udělá všechna tlačítka stejně velká a stejně barevná, čímž uživateli sebere vodítko, co je důležité.