6 zásad, jak udržet více feature větví v čistotě
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.
Po migraci spusťte sadu testů, která porovná výsledky dotazů na obou databázích. Zaměřte se na dotazy s datem, textem a agregacemi. Typická chyba je v použití funkce DATE_FORMAT, kterou PostgreSQL nemá – musíte ji nahradit funkcí TO_CHAR. Ujistěte se, že vaše aplikace používá ovladač rady pro rekonstrukci PostgreSQL a že je správně nakonfigurována pro práci s novým typem vrácených dat.
Pamatujte, že zákazník nevnímá jen samotný termín, ale i způsob, jakým o něm mluvíte. Vyhněte se váhání, nejasným formulacím a přílišným omluvám. Buďte struční, ale konkrétní. A pokud je to možné, nabídněte alternativu: „Můžu to udělat rychleji, ale bude to stát víc práce a možná to ovlivní kvalitu. Dáváte přednost rychlosti, nebo důkladnosti?" Tím dáváte zákazníkovi možnost volby a cítí se jako součást rozhodování, místo aby byl pasivním příjemcem slibů.
Základem je krátký životní cyklus větve. Čím déle úložné prostory v malém bytěětev žije, tím větší je pravděpodobnost konfliktů a zbytečné práce. Ideální je, když větev existuje maximálně pár dní. Pokud víte, že vám práce zabere déle, rozdělte ji na menší logické celky a každý z nich mergujte zvlášť. Tím se vyhnete situaci, kdy po třech týdnech mergujete stovky změn a nevíte, která z nich způsobila problém.
Typická chyba je psát testy, které závisí na pořadí provedení. Testy musí být izolované – každý běží sám za sebe a nespoléhá se na stav z předchozího testu. Pokud potřebujete připravit data, udělejte to v metodě, která se volá před každým testem. Vyhněte se také testování implementace – testujte chování, ne to, jak je funkce napsaná. Když později změníte vnitřní kód, testy by měly zůstat beze změny.
Když začnete verzovat svůj kód, přestanete se bát experimentů. Git vám umožní vracet změny, porovnávat verze a spolupracovat s ostatními bez chaosu. Než se ale pustíte do příkazů, pochopte, že Git nesleduje soubory, ale obsah projektu jako celek. Proto je důležité od začátku myslet na to, co chcete verzovat – a co ne.
Pokud máte více feature větví, které spolu souvisí, zvažte, zda je neřešit na jedné větvi, ale postupně. Často se stává, že dvě větve mění stejný soubor a po mergu druhé z nich vzniknou zbytečné konflikty. Místo toho si práci naplánujte tak, aby se větve vzájemně nepřekrývaly, nebo je slučte do jedné „epické" větve, kterou pak mergnete najednou. Tím se vyhnete situaci, kdy máte pět větví čekajících na merge a každá obsahuje změny, které závisí na jiné.
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.
Jak se vyhnout nejčastějším chybám při prvních krocích Nejčastější chybou začátečníků je verzování všech souborů bez výjimky. Do repozitáře se nemají dostat dočasné soubory, knihovny, nebo třeba konfigurace s hesly. Vytvořte si soubor .gitignore a zapište do něj vzory, které chcete ignorovat – například *.log, node_modules/ nebo .env. Tento soubor si uložte do repozitáře hned na začátku, ušetří vám to spoustu nepříjemností při sdílení projektu.
Druhý typický problém nastává, když zapomenete, že commit není záloha. Pokud pracujete na větvi a provedete commit, změny jsou uložené v lokálním repozitáři. Dokud je nepošlete na vzdálený server (například přes git push), jsou ohrožené selháním disku. Po každém smysluplném kroku proto synchronizujte s vzdáleným úložištěm. Pokud pracujete sami, stačí jedna hlavní větev; při spolupráci se vám vyplatí vytvářet větve pro jednotlivé úkoly a slučovat je až po otestování.
Nejčastější chybou je uvádět jeden konkrétní termín bez jakékoli rezervy. Pokud si nejste jistí, řekněte raději rozsah: „Předpokládám, že to bude hotové mezi středou a pátkem." Tím dáváte najevo, že nad termínem přemýšlíte, a zároveň si necháváte prostor pro nepředvídané komplikace. Zákazník ocení, když mu rovnou vysvětlíte, co může ovlivnit délku práce – například čekání na podklady, složitost zadání nebo nutnost dodatečných konzultací.