Continuous Integration – stały trend, czy chwilowa moda?

20.10.2020 Angelika Siczek

Dlaczego Continuous Integration to taka ważna kwestia w pracy programisty? Ponieważ to dzięki niej w znaczący sposób można usprawnić swoją pracę i skrócić czas oczekiwania na efekt projektu. Dowiedz się, na czym polega Continuous Integration i czy rzeczywiście już na stałe zagościła w branży programistycznej, czy jest jedynie chwilowym trendem!

Co to jest Continuous Integration?

Jest to praktyka programistyczna, umożliwiającą członkom zespołu na częste scalanie wyników swojej pracy i aktualizację wspólnego repozytorium. Niezależnie od niego działa serwer Continuous Integration, który po określonych zdarzeniach (takich jak  zmiana w kodzie w jednej z gałęzi repozytorium lub połączenie dwóch gałęzi) pobiera kod z repozytorium. Dzięki temu powstaje kilka zintegrowanych wersji kodu, które sprawdza automatyczny proces budowania, testowania i integrowania. Jeśli w kodzie pojawi się błąd, członkowie zespołu są natychmiast powiadamiani o powstałym problemie.

Żeby lepiej zrozumieć zagadnienie, wytłumaczymy to na przykładzie. Załóżmy, że Twój zespół programistyczny w tym samym czasie pracuje nad dwiema różnymi funkcjami. Część z developerów pracuje nad funkcją A, a druga część nad funkcją B. Aby zrealizować wszystkie założenia swoich projektów, muszą uaktualniać te same pliki. Jeśli dokonają zmian w identycznych plikach, za jakiś czas okaże się, że wprowadzone modyfikacje, trzeba będzie połączyć, tak, aby napisane przez nich kody nadal działały sprawnie. Pochłonie to olbrzymią ilość cennego czasu. Dlatego, aby rozwiązać ten problem, wprowadzono Continuous Integration

CI umożliwia korzystanie ze współdzielonego repozytorium kodu źródłowego wszystkim członkom zespołu rozwijającego produkt. W efekcie wprowadzane przez nich zmiany są regularnie integrowane – często nawet kilka razy w ciągu godziny. Sprawia to, że wszyscy programiści zaangażowani w projekt na bieżąco mogą śledzić zmiany i uwzględniać je w swojej pracy przy kodzie. 

Czym jest serwer Continuous Integration?

Aby proces CI zachodził poprawnie, niezbędny jest serwer Continuous Integration, będący współdzielonym repozytorium kodu, do którego dostęp powinni mieć wszyscy zainteresowani członkowie zespołu. Celem tego jest automatyczne sprawdzanie, czy każda kolejna zmiana wprowadzona przez programistę, jest zintegrowana z obecną wersją kodu oraz ze wszystkimi innymi zmianami uwzględnionymi przez pozostałych developerów. 

Jak działa taki proces? Kiedy programista wysyła zmiany do repozytorium kodu, serwer CI samodzielnie wykrywa i pobiera tę zmianę. Następnie buduje system, czyli produkt i uruchamia testowanie. Jeśli okaże się, że wszystkie przeprowadzone testy zakończą się pomyślnie (zielony build), serwer automatycznie informuje zespół o zakończeniu pracy sukcesem. Jeśli jednak okaże się, że któryś z testów nie zakończył się poprawnie (czerwony build), serwer da znać zespołowi, aby ten jak najszybciej zajął się rozwiązywaniem problemu. Warto podkreślić, że jeśli kod źródłowy produktu nie został poddany odpowiedniej ilości testów, nie nadaje się do poddawania Continuous Integration

Jakie zmiany wprowadza CI?

Istnieje grupa powodów, dla których warto zastanowić się nad wprowadzeniem rozwiązania, jakim jest Continuous Integration. Wśród nich znajdziesz zarówno aspekty czysto techniczne, jak i biznesowe. Poznaj 6 najważniejszych czynników. 

  1. Continuous Integration zmniejsza ryzyko wystąpienia problemów z integracją pod koniec trwania projektu. Ogranicza więc błędy, niekompatybilność interfejsów, a także trudny do określenia czas na scalenie projektu w całość.
  2. Continuous Integration ułatwia naprawianie pojawiających się błędów. Dzięki niej szybko wykryjesz problem i określisz jego przyczynę. Znajdziesz to, co było ostatnio zmieniane i ewentualnie przywrócisz wersję, która działała w poprawny sposób.
  3. CI pozwala na prezentowanie aplikacji klientowi i konsultowanie z nim wprowadzanych zmian. Możliwość ta pojawia się dzięki dostępności do ostatniej działającej wersji aplikacji.
  4. CI ułatwia refaktoryzację (proces wprowadzania zmian w projekcie bez zmieniania funkcjonalności). Możesz więc bez problemu sprawdzić, czy wszystko funkcjonuje tak, jak powinno.
  5. Continuous Integration odciąża programistów od wykonywania powtarzalnych czynności, które nie rozwijają projektu, a często pochłaniają wiele czasu.

 

Narzędzia wspierające Continuous Integration

Aby proces CI przebiegał sprawnie, niezbędne jest korzystanie z niektórych narzędzi. Warto więc bliżej przyjrzeć się współdzielonym repozytorium kodu takim jak: GitHub, BitBucket, GitLab i Sourceforge. Z kolei jako serwer CI można wybrać: Jenkins, Team City, Travis, Codeship lub Semaphore

Co z tym trendem CI?

Wiesz już, że Continuous Integration rozwiązuje mnóstwo problemów, pojawiających się w codziennej pracy zespołu developerskiego, pracującego przy jednym produkcie. Skraca czasochłonny proces integracji kodu i zapobiega występowaniu w nim błędów. To duże ułatwienie także dla osoby nadzorującej projekt – Project Managera. Umożliwia mu sprawniejsze kierowanie zespołem i zwiększenie jego wydajności.  Continuous Integration nie jest jedynie chwilowym trendem w branży IT. Wygląda na to, że ze względu na swoje liczne zalety, zagości w pracy programistów na dłużej.

Cyfrowe newsy / Bądź na bieżąco

Od początku 2022 roku wchodzimy w skład Unity Group. Teraz zapisując się do naszego newslettera, będziesz na bieżąco z informacjami całej naszej organizacji.

    Wypełniając formularz wyrażasz zgodę na wysyłkę newslettera przez Unity S.A. z siedzibą we Wrocławiu. Zgodę możesz wycofać w każdej chwili. Więcej informacji na ten temat znajdziesz w naszej polityce prywatności.

    *Wymagane

    Andrzej-kurs-programowania

    Andrzej Szylar

    Chief Executive Officer

    E-mail:

    a.szylar@global4net.com
    Magda2

    Magdalena Paczyńska-Kamienik

    HR Manager

    Aleksandra

    Aleksandra Bielawska-Clegg

    HR Business Partner

    E-mail:

    Michal

    Michał Duława

    New Business Developer

    E-mail:

    Katarzyna

    Katarzyna Zajchowska

    Marketing Partner

    E-mail: