Průběžná integrace

Nepřetržitá integrace ( CI , eng.  Continuous Integration ) je praxe vývoje softwaru , která spočívá v neustálém slučování pracovních kopií do společné hlavní vývojové větve (až několikrát denně) a provádění častých automatizovaných sestavení projektů pro rychlou identifikaci potenciálních defektů a řešení integrace. problémy . V typickém projektu, kde vývojáři pracují nezávisle na různých částech systému, je fáze integrace poslední. Může nepředvídatelně zpozdit dokončení práce. Přechod na kontinuální integraci umožňuje snížit složitost integrace a učinit ji předvídatelnější díky co nejčasnějšímu odhalení a odstranění chyb a nesrovnalostí, ale hlavní výhodou je snížení nákladů na opravu závady díky její včasné detekci.

Nejprve konceptualizoval a navrhl Grady Booch v roce 1991 [1] . Je to jeden z hlavních prvků praxe extrémního programování .

Organizace

Pro uplatnění praxe je nutné splnit řadu základních požadavků na developerský projekt. Zejména zdrojový kód a vše, co je potřeba k sestavení a testování projektu, by mělo být uloženo v úložišti systému správy verzí a operace kopírování z úložiště, sestavování a testování celého projektu by měly být automatizovány a snadno volány z externích zdrojů. programy.

Pro organizaci procesu nepřetržité integrace na dedikovaném serveru je spuštěna služba, jejíž úkoly zahrnují:

Lokální sestavení může být provedeno externím požadavkem, plánem, faktem aktualizace úložiště a dalšími kritérii.

Plánovaná sestavení ( ang.  daily build  - daily build ) se zpravidla konají po hodinách, v noci ( eng.  nightly build ), jsou plánována tak, aby výsledky testů byly připraveny do začátku následujícího pracovního dne. Pro rozlišení je dodatečně zaveden systém číslování sestav - většinou je každá sestava očíslována přirozeným číslem, které se zvyšuje s každou novou sestavou. Zdrojové texty a další zdrojová data, jsou-li převzata z úložiště (úložiště) systému správy verzí, jsou označeny číslem sestavení. Díky tomu lze v budoucnu přesně reprodukovat přesně stejnou sestavu - stačí vzít zdrojová data pro požadovaný štítek a spustit proces znovu. Díky tomu je možné znovu vydat i velmi staré verze programu s drobnými opravami.

Výhody a nevýhody

Mezi výhody nepřetržité integrace patří:

Praxe zároveň není bez nevýhod, zejména:

Okamžitý efekt neúplného nebo nefunkčního kódu navíc odrazuje vývojáře od provádění periodických záloh kódu do úložiště, ale v případě použití systému správy verzí zdrojového kódu s podporou větvení lze tento problém vyřešit vytvořením samostatného „větev“ ( angl.  branch ) projektu pro provádění velkých změn (kód, jehož vývoj do funkční verze zabere několik dní, ale je žádoucí častější ukládání výsledku do úložiště). Po dokončení vývoje a individuálního testování takové větve může být sloučena ( merge ) s hlavním kódem nebo " kmenem " ( trunk ) projektu.

Poznámky

  1. Booch, Grady . Objektově orientovaný design: S  aplikacemi . — Benjamin Cummings, 1991. - S. 209. - ISBN 9780805300918 .

Literatura

Odkazy