Než zveřejníte kód, vyberte licenci podle toho, co chcete dovolit
Cache je váš nejlepší přítel, ale jen když ji používáte správně. Cacheujte závislosti podle lockfile, ne podle názvu větve. Pokud cache klíč závisí na něčem, co se mění při každém commitu, cache nikdy nezabere a jen zabírá místo. Stejně tak pozor na paralelní běhy: dva joby, které zapisují do stejné databáze, si navzájem rozbijí data. Každý běh by měl mít vlastní izolované prostředí, ideálně kontejner s vlastní sítí.
Testování aplikací není fáze, která rekonstrukce koupelny krok za krokemčíná po dokončení interiéru vývoje. Pokud ho takto oddělíte, narazíte na hromadu chyb pozdě, kdy jsou opravy drahé a riskantní. Praktický přístup je testovat průběžně, ale ne nahodile. Každá změna v kódu by měla mít jasně daný způsob, jak ověřit, že funguje a nerozbila nic jiného. Bez toho se z testování stane nekonečné hašení požárů.
Zvolte strategii: fixní nebo nezávislé verze Prvním rozhodnutím je, zda všechny balíčky ponesou stejné číslo verze (fixed mode), nebo každý půjde svou cestou (independent mode). Fixní režim je jednodušší na komunikaci i publikaci, protože celé monorepo má jednu verzi. Nezávislý režim dává smysl, pokud se balíčky vyvíjejí velmi odlišným tempem a nechcete kvůli jedné změně zvedat verzi všem. V praxi se osvědčil fixní režim pro menší týmy a nezávislý pro velké projekty s vlastními release cykly. Zvolte jeden a držte se ho.
Dalším krokem je nastavit nástroj pro správu verzí a vydávání. Mezi oblíbené patří Changesets, Lerna nebo Rush. Changesets funguje tak, že vývojář při změně přidá malý soubor s popisem a typem změny (patch, minor, major). Nástroj pak při vydání sám spočítá nové verze, aktualizuje závislosti a vygeneruje changelog. Lerna v novějších verzích spolupracuje s Changesets nebo používá vlastní řešení. Rush je těžší kalibr, ale dobře zvládá velká monorepa s přísnou konzistencí.
Praktický postup je krátký. Vyberte licenci, vložte její plný text do souboru LICENSE v kořeni repozitáře, doplňte krátkou hlavičku do zdrojových souborů a uveďte licenci i v popisu projektu. U knihoven zvažte, zda není vhodnější slabý copyleft, který ochrání váš kód, ale neomezí jeho použití. U nástrojů, které mají proniknout do firem, volte permisivní licenci. A pokud si nejste jistí právními důsledky, konzultujte text s právníkem specializovaným na duševní vlastnictví. Licence je součást architektury projektu, ne dokument na konci.
Nakonec platí, že odhad je nástroj pro rozhodování, ne závazek. Když se ukáže, že práce je větší, je lepší včas zúžit rozsah nebo posunout termín než tiše přidávat hodiny navíc. Projekt, který pohltí všechny rezervy, obvykle skončí buď pozdě, nebo s dluhy, které se vymstí při další úpravě.
Nejčastější chyby: odhadovat podle nejlepšího možného scénáře, zapomínat na schůzky a administrativu, slibovat termín před analýzou a tlačit na zkrácení odhadu, aby projekt „prošel". Další pastí je srovnávání s jiným projektem, který byl jiný rozsahem i týmem. Pokud odhad měníš, dělej to na základě nových zjištění, ne na základě přání.
Po dokončení etapy porovnej skutečný čas s odhadem a zapiš, kde vznikl rozdíl. Z těchto poznámek vzniká kalibrace: příště víš, že integrace třetí strany obvykle trvá dvakrát déle, než se zdá. Odhady se nikdy netrefí přesně, ale s každou iterací se zmenšuje prostor pro nepříjemná překvapení.
Nakonec si dejte pozor na dvě věci. Nepočítejte s tím, že review proběhne mimo pracovní dobu, a neplánujte zapracování na poslední chvíli před deadlinem. Review není formalita, je to součást práce. Kdo to bere vážně, ten nemusí slibovat nereálné termíny a nemusí se pak vymlouvat, že „to ještě není hotové". Odhad, který zahrnuje i lidskou část procesu, je přesnější a hlavně použitelnější pro plánování.
Volba open source licence není formalita, kterou lze odbýt na konci projektu. Licence určuje, co s vaším kódem smí dělat ostatní, a zároveň chrání vás, pokud někdo podmínky poruší. Rozhodněte se dřív, než kód nahrajete do veřejného repozitáře. Dodatečná změna je možná jen u kódu, u kterého držíte autorská práva ke všem částem, což po zapojení cizích přispěvatelů přestává platit.
Nastavte také CI pipeline, která při mergi do hlavní větve spustí kontrolu změn, vydá nové verze a publikuje je. Nikdy nepublikujte z lokálního počítače, protože snadno dojde k zapomenutí některého balíčku nebo k nekonzistentnímu stavu. CI by měla nejprve ověřit, že všechny testy projdou, a teprve poté přistoupit k verzování. Pokud používáte Changesets, rekonstrukce bytu nechte na CI i vytvoření pull requestu s novými verzemi, který někdo schválí. Tím získáte kontrolu a přehled.
In the event you loved this post and you would like to receive much more information relating to web i implore you to visit our own website.