Logo

K čemu je dobrá kontinuální integrace?

Vložil Pavel Klobasa, 9. Únor 2008 - 12:56

Už odteklo hodně vody ve Ponávce, co jsme zavedli kontinuální integraci pomocí Hudsonu a Mavenu. Nastal čas na krátké zhodnocení. Kontinuální integrace je součástí metodik extrémního programování. Ačkoliv neprogramujeme extrémně, má pro nás kontinuální integrace smysl, popišme si krátce jaký.

Jedním z pravidel pro práci s repository je to, že vývojář do verzovacího systému commituje jen takový kód, který je přeložitelný. (Nemusí být ovšem funkční – závisí na konvencích konkrétního projektu). Pravidlo je to pěkné, ale funguje lépe, když existuje nějaký mechanismus, který prověří jeho dodržení. A přesně to Hudson umí – po nepodařeném commitu pošle „hřišníkovi“ nikoliv golema, ale varový email.

Součástí kontinuální integrace je i spuštění testů. Vývojář se tedy nemusí zdržovat spouštěním časově náročnějších testů – výsledky uvidí opět v Hudsonu.

Další funkcí, kterou používáme, je automatické vytvoření buildu. Do pěti minut po commitu je k dispozici nová verze. Projekt manager má tedy přehled o stavu vývoje, aniž by se musel učit vývojové prostředí a aniž by musel rozumět repository a v něm použitým konvencím.

A to nejlepší nakonec. Protože používáme Maven, dokážeme pro projekt vytvořit i informační web. Takže do několika minut po commitu je k dispozici aktuální JavaDoc, výsledky měření kvality kódu (findbugs, checkstyle, pmd), výsledky testů a pokrytí testy atp.

Ač rozchození všech těchto nástrojů nebylo vždy snadné a na adresu Mavenu padlo spousta nelichotivých slov, výsledek stojí za to…

jozef (bez ověření) Says:
10. Duben 2008 - 14:04

Mohol by ste prosím uviesť konkrétne tu spoustu "nelichotivých slov na adresu Mavenu"?


Pavel Klobasa Says:
10. Duben 2008 - 15:10

Nemůžu, ta slova nepatří do slušné společnosti :-) Ale k věci…

  1. Struktura adresářů je fakticky povinná, neboť některé zásuvné moduly nerespektují její přenastavení. Problém je například u starých aplikací, které chcete převést pod Maven.
  2. Občas něco nefunguje… Po delším úsilí se většina problémů dá nějak vyřešit, ale ne vždy.
  3. Některé informace je těžké zjistit. Například jak nadesignovat a doplnit obsah do webu generovaného Mavenem jsem hledal několik dní…
  4. Prostě je to něco jiného a člověk si musí zvykat.

Mavenu fandím, ale přijde mi, že nasazení v produkčním prostředí je na hranici použitelnosti. Na druhou stranu po pracném počátečním nastavení nám už řadu měsíců funguje bez problémů.


jozef (bez ověření) Says:
10. Duben 2008 - 15:20

Moc sa mi do Mavenu nechce. Ale uvažujem pri novom projekte o kompromise. Zostanem pri Ant-e, vyskúšam pridať Ivy na riešenie závislostí a štruktúru+hierarchiu projektov založím podla Maven konvence. Čo si o tom myslíte? Ak bude v budúcnosti vyžadovaný prechod na Maven mohol by byť "bezbolestný"?


Pavel Klobasa Says:
10. Duben 2008 - 15:44

Můj názor je, že mavenovský přístup je "nekompromisní" - buď všechno nebo nic. Máte-li nějaký zásadní důvod pro Maven, tak ho použijte už od začátku.


© 2005-2008 oXy Online s.r.o., všechna práva vyhrazena.