Dagi se rozepsal o tom, zda je nutné neustále zabraňovat zboření konzistence kódu ve Version Control Systému (a je buřt, zda jde o CVS, Subversion, Mercurial etc.). Podle něj je spouštění testů na vlastním stroji před commitem zbytečný a drahý luxus. Nesouhlasím.
Ono je totiž zboření buildu a zboření buildu.
V případě, kdy vám ve chvíli těsně před releasem, kdy se provádí generování hlaviček do CVSka, do systému někdo přidá třídu, která u něj na disku (nebo u kýho čerta) zústala z přechozí verze, když v aktuální byla smazaná (jak se to Beate přesně podařilo, to je kupě lidí doteď záhadou, přestože určité vysvětlení se objevilo), vám nepomůže ani svěcená a jste v háji jak Baťa s dřevákama.
Pokud máte pár dnů před prvním RCčkem, dvacet lidí v kalupu komituje, aby se to stihlo, a někdo vám ten build zboří, je to obrovská ztráta nervů a času pro všechny zainteresované a testy je třeba dělat. Obzvláště když se takový commit provede ve chvíli, kdy onen člověk odchází domů, nejlépe v pátek nebo ještě lépe den před plánovanou dovolenou (vivat Murphy). Kompletní rebuild a test celeho systému není důležitý, stačí provést přírůstkový build a spustit selektivní testy. Podpora pro něco takového byla, Dagi, už ve starém rbuildu (buildovací systém interně vyvíjený právě pro potřeby Idooxu/Systinetu/Mercury/HP.
No a samozřejmě jsou případy, kdy něco takového jako zboření buildu je přímo žádoucí, jako například když dochází ke změně API.
Na základě těchto případů je jasné. že něco jak obecné pravidlo, natož automatizmus, nelze udělat. Ano, máte pravdu, lze. Ale pak se dostáváme do světa aplikací, které se snaží být chytřejší než uživatelé, a takové BYTOSTNĚ nesnáším.
Dagblog přesunut na vlastní doménu
před 8 lety
Žádné komentáře:
Okomentovat