Zum Inhalt springen

Git workflow, který týmům komplikuje práci: časté chyby a jejich řešení

Aus TerraDuniaWiki

Další věc, na kterou si dát pozor, je verzování. Android má spoustu verzí a tvůj telefon nemusí mít tu nejnovější. Když vytváříš projekt, zvol minimální verzi, která podporuje většinu zařízení. Ideálně zvol verzi, která pokrývá alespoň 90 procent aktivních zařízení. Nezapomeň také na to, že se aplikace testuje v emulátoru, ale reálné zařízení je vždy lepší. Pokud můžeš, připoj si telefon přes USB a spusť aplikaci na něm. Uvidíš, že i když emulátor funguje, na reálném telefonu se může chovat jinak.

Při psaní kódu si zvykni na používání verzovacího systému od samého začátku. I když děláš projekt sám, ušetří ti to čas při hledání chyb. Když něco rozbiješ, můžeš se vrátit k předchozí verzi. Mnoho začátečníků tuto disciplínu přeskakuje, ale později to litují. Dále se nauč používat nástroje pro ladění, které ti ukazují hodnoty proměnných v reálném čase. To je neocenitelné, když se ti aplikace chová jinak, než očekáváš.

Nezapomínejte ani na to, jakou roli hraje váš tón hlasu a formulace. Místo „určitě to stihneme" použijte „uděláme maximum, ale garantovat to nemůžu". Zákazník pak nebude překvapený, když nastane problém. A když odhad dodržíte, připomeňte mu to: „Termín jsme potvrdili a dodrželi." Tím budujete pověst spolehlivého partnera. Naopak pokud termín nestíháte, ozvěte se dřív, než se zákazník zeptá. Krátká zpráva „práce se protáhne, nový termín je úterý" je mnohem lepší než žádná.

Nakonec si položte dvě otázky: co chce umožnit uživatelům s vaším kódem a co chcete vidět zpět? Pokud odpovíte „chci, aby mohl každý kód využít, ale s povinností šířit změny pod stejnou licencí", pak je GPL jasná volba. Pokud chcete maximální šíření bez podmínek, sáhněte po MIT. Rozhodnutí není nevratné – licence můžete změnit, ale jen v rámci budoucích verzí a s rizikem fragmentace komunity. Proto si dejte na výběr čas a konzultujte to s právníkem, pokud máte pochybnosti.

Praktickým krokem je rozhodnutí o tom, co odlišuje váš projekt. Pokud jde o knihovnu, kterou mají ostatní vývojáři připojovat do svých aplikací, permisivní licence usnadní integraci. Pokud jde o samostatnou aplikaci, kterou chcete poskytovat s garancí svobody pro koncové uživatele, silnější copyleft dává smysl. Častou chybou je kombinace více licencí v jednom projektu. Přidávání souborů pod odlišnými licencemi vytváří právní zmatek a může vést k tomu, že kód nelze legálně distribuovat vůbec. Proto si hned na začátku ujasněte, jestli budete používat jednotnou licenci, nebo zda si vystačíte s výjimkou pro určité části projektu.

Důležité je také rozhodnout, jak často slučovat změny do hlavní větve. Doporučuji slučovat alespoň jednou denně, ideálně po každé dokončené části práce. Čím déle větev žije, tím větší je riziko konfliktů. Než začnete slučovat, vždy si aktualizujte svou větev z hlavní větve. To znamená, že si stáhnete změny, které mezitím přibyly, a vyřešíte případné konflikty ještě před samotným sloučením. Tím se vyhnete velkým a nepřehledným merge konfliktům.

Pro týmovou spolupráci je klíčové, aby každá změna prošla code review. Nikdo by neměl pushovat přímo do hlavní větve, ani když jde o malou opravu. Místo toho vytvořte pull request, ve kterém popíšete, co jste změnili a proč. Recenzent se podívá na změny, případně navrhne úpravy, a teprve poté se změna sloučí. Tento proces není zbytečná byrokracie, ale způsob, jak chytit chyby dřív, než se dostanou do produkce. Zároveň pomáhá šířit znalosti o kódu mezi členy týmu.

Jak strukturovat testy a využít fixtures Když potřebujete připravit data nebo prostředí, použijte fixtures. Jsou to funkce s dekorátorem @pytest.fixture, které vrací hodnotu nebo objekt. Například

Dalším častým omylem je domněnka, že stačí licenci vybrat a zapomenout na ni. Nezapomeňte na konzistenci – pokud změníte licenci po vydání verze 1.0, všichni, kdo ji stáhli, mají právo používat kód podle původních podmínek. To znamená, že zpětná změna na přísnější licenci je prakticky nemožná, pokud nemáte podpisy všech přispěvatelů. U projektů s více autory je proto vhodné od začátku používat mechanismus, který vám umožní získat souhlas s případnou změnou licence. Dobrým zvykem je také doplnit do hlaviček zdrojových souborů krátkou poznámku o licenci a autorovi.

Když tým přejde na Git, většinou začne s jednoduchým tokem: každý pracuje na vlastní větvi, poté se změny sloučí do hlavní větve. Tento přístup funguje u malých projektů, ale s rostoucím týmem narazíte na konflikty, ztracené změny a nepřehlednou historii. Největší problém nebývá samotný nástroj, ale pravidla, která si tým nestanoví předem. Bez jasných pravidel se i zkušení vývojáři dostanou do situace, kdy nevědí, kam commitnout změnu nebo jak správně provést review.