Vyhýbejte se neurčitým slovům, která nic neříkají: „oprava chyby", „vylepšení", „různé". Pokud opravdu nevíte, co změna dělá, je to signál, že jste ji neměli commitovat. Stejně tak nedávejte do zprávy odkazy na interní systém, jehož význam za rok zmizí. Místo čísla tiketu napište větu, která popisuje podstatu – číslo může být doplněk, ne náhrada sdělení.
Open source licence nejsou jen formalita na GitHubu. Určují, co smíte s kódem dělat, jak ho upravovat a šířit dál. Pokud je nedodržíte, můžete se dostat do právního sporu i při nejlepší vůli. Přitom stačí málo – pochopit, co která licence vyžaduje, a nastavit procesy tak, aby se na to nezapomínalo.
Většina vývojářů píše commit zprávy tak, jako by je nikdy neměl číst nikdo jiný než oni sami – a to je přesně ten problém. Za půl roku narazíte na stejný kód, otevřete historii a místo odpovědi najdete „oprava", „fix" nebo „update". Ztratíte dvacet minut hledáním, co se tehdy vlastně změnilo a proč. Přitom stačí pár návyků, které zaberou o pár sekund víc při commitu, ale ušetří hodiny při dohledávání.
Verzování není jen číslo v U
Základ je popsat proč, ne co. Samotný diff ukazuje, které řádky se změnily, takže psát „změněna podmínka v cyklu" je zbytečné. Užitečná je informace, kterou z kódu nevyčtete: „cyklus končil o jedna dřív a poslední záznam se neukládal". První řádek držte krátký, do zhruba padesáti znaků, zbytek rozveďte v těle zprávy po prázdném řádku. Tím získáte přehled v logu i detail pro toho, kdo bude pátrat po příčině.
Jedna změna, jeden commit Nejčastější chyba je slepení nesouvisejících úprav do jednoho commitu. Opravíte překlep v textu, přidáte novou funkci a ještě upravíte konfiguraci – a výsledkem je změť, kterou nelze zpětně rozumně rozdělit. Když pak potřebujete vrátit jen opravu překlepu, musíte revertovat i funkci. Rozdělte práci na menší celky ještě před commitem, klidně pomocí příkazu, který do indexu přidá jen vybrané části souboru. Menší commity se snáz čtou, snáz se z nich staví historie a snáz se v nich hledá.
Nejprve zjistěte, koho chyba skutečně zasahuje. Jinak vypadá situace, kdy selhává platba nebo přihlášení, a jinak kosmetická vada v málo používané obrazovce. Sepište, kolik lidí to potkalo, zda jde o ztrátu dat, nebo jen o nepohodlí, a jestli existuje rozumný způsob, jak se tomu vyhnout. Teprve potom rozhodujte o tempu. Bez tohoto kroku se opravy hromadí podle toho, kdo si nejhlasitěji stěžuje, ne podle skutečné škody.
Pokud vyvíjíte software pro vlastní potřebu a nikdy ho nešíříte, většina povinností vás netrápí. Jakmile ale kód poskytnete zákazníkovi, vložíte ho do produktu nebo zpřístupníte jako službu, musíte splnit podmínky všech použitých licencí. U copyleftu to znamená připravit a zveřejnit zdrojový kód odvozeného díla. U permisivních licencí stačí přiložit text licence a seznam autorů. Vždy si před vydáním nechte zkontrolovat shodu licence s obchodním modelem – někdy je jednodušší problematickou knihovnu nahradit jinou než řešit právní výklad.
Jak si ohlídat licence v praxi Začněte tím, že si uděláte inventuru všech závislostí. Nestačí se podívat do souboru s požadavky, protože licence se mohou lišit i mezi podverzemi. Použijte nástroj pro skenování licence (například skener závislostí), který vygeneruje seznam knihoven a jejich licenčních podmínek. Výsledek neberte jako konečný verdikt – vždy si u klíčových knihoven ověřte text licence přímo v repozitáři, protože někteří autoři přidávají dodatečné podmínky nebo výjimky.
Častá chyba je zaměnit licenci kódu a licenci dokumentace nebo dat. Kód může být pod MIT, ale přiložená dokumentace pod CC BY-NC, která zakazuje komerční využití. Další častý omyl je předpoklad, že „open source" automaticky znamená „bez podmínek". Není to pravda – i permisivní licence vyžadují uvedení autora a kopii licence. Zapomínat na uvedení atribuce je nejrychlejší cesta k porušení.
Dodržování licencí není jednorázový úkol. Zaveďte pravidelnou kontrolu při každém přidání nové závislosti a při každém vydání. Ve smlouvě s dodavatelem si vymíňte, že všechny použité komponenty mají licence slučitelné s vaším produktem. A pokud si nejste jistí, obraťte se na právníka specializovaného na duševní vlastnictví. Ušetříte si čas i peníze za zpětné řešení problému, který vznikl kvůli přehlédnuté podmínce.
Nakonec si hlídejte, aby se pyramida nezvrhla v přesýpací hodiny. Jakmile začne převažovat jedna vrstva, ať už unit nebo E2E, znamená to, že ostatní vrstvy neplní svou roli. Pravidelně, třeba jednou za čtvrt roku, se podívejte na poměr testů a na to, jak dlouho běží. Pokud se poměr vychýlí, přesuňte testy tam, kam patří. V dynamickém projektu není pyramida pevná stavba, ale něco, co se neustále vyvažuje.