Continuous Integration i Git

Kod: tools-Git-CI
Kategoria: Narzędzia
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 2 dni
Grupa docelowa: developerzy
testerzy
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Podczas szkolenia uczestnicy poznają informacje oraz praktyczne techniki pozwalające na samodzielne projektowanie oraz implementowanie procesu ciągłej integracji.

W pierwszej kolejności zaprezentowane zostaną zagadnienia podstawowe takie jak: instalacja i konfiguracja narzędzi, automatyzacja kompilacji, różnych rodzajów testowania oraz statycznej analizy kodu.

Następnie poruszone zostaną zaawansowane rozwiązania, takie jak: integracja z systemami zewnętrznymi, współbieżne wykonywanie planów oraz wykorzystanie procesu ciągłej integracji podczas wdrażania koncepcji „Continous Delivery”.

Na zakończenie uczestnicy poznają polecane metody projektowania i optymalizacji oraz wskazówki pozwalające wybrać narzędzia najbardziej odpowiadające ich potrzebom.

Podczas szkolenie uczestnicy nabywają praktyczną umiejętność pracy zespołowej z rozproszonym repozytorium kodu.

Uczestnicy przechodzą przez wszystkie etapy pracy (Flow) z projektem poznając najlepsze praktyki dla każdego z etapów.

Podczas warsztatów kładziemy szczególny nacisk na zmianę nawyków powstałych podczas korzystania z repozytoriów starszej generacji.

Wyróżniki szkolenia

  • Poprawienie jakości oprogramowania
  • Automatyzacja zadań
  • Continuous Delivery
  • Zalecane wzorce i praktyki

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Podstawy
    1. Co to jest ciągła integracja
    2. Cechy
    3. Korzyści
    4. Ciągła integracja jako proces
      1. Prezentacja praktyk programistycznych wymaganych do poprawnej implementacji CI, wykazanie, że CI to proces a nie tylko narzędzie do automatycznej kompilacji
  2. Automatyzacja
    1. Dlaczego warto automatyzować
      1. Przedstawienie korzyści płynących z automatyzacji zadań
    2. Narzędzia
      1. Przedstawienie najpopularniejszych narzędzi umożliwiających automatyzację(Ant, Maven, Gradle i inne), ich zalet, wad oraz potencjalnych zastosowań.
    3. Automatyzacja na serwerze
      1. Opis możliwości automatyzacji oferowanej przez serwer CI
    4. Prostota kontra elegancja
      1. Przedstawienie dylematu pomiędzy stosowaniem rozwiązań szybkich a rozwiązań czasochłonnych i eleganckich, jakie są ich zalety, wady oraz kiedy warto je stosować
  3. Serwer ciągłej integracji
    1. Narzędzie
      1. Pierwsze zaprezentowanie konkretnego serwera CI, np.: Atlassian Bamboo, przedstawienie procesu instalacji oraz podstawowych jego elementów i funkcji
    2. Architektura
      1. Przedstawienie architektury działającego systemu, jakie są jej cechy, jak przebiega komunikacja, jakie są możliwości jej modernizacji oraz jakie posiada wymagania środowiskowe
    3. Podstawowe rozwiązania
      1. W tej części przedstawiona zostanie implementacja najczęściej wykonywanych zadań. Są to: tworzenie planu automatycznie kompilującego kod źródłowy, jak pracować z wynikami planów, zarządzanie użytkownikami oraz zaprezentowanie dostępnych możliwości automatycznego powiadamiania i uruchamiania.
  4. Testowanie
    1. Wprowadzenie
      1. Ogólne przedstawienie możliwości testowania za pomocą serwera CI
    2. Korzyści
    3. Testy jednostkowe
      1. Przedstawienie możliwości wykonywania testów jednostkowych oraz sposobu pracy z wynikami
    4. Testy funkcjonalne
      1. Przedstawienie możliwości automatyzacji testowania funkcjonalnego za pomocą Selenium oraz RobotFramework’a, opis przebiegu i możliwości integracji z serwerem CI, przykłady użytkowania oraz pracy z wynikami
    5. Testy wydajnościowe
      1. Przedstawienie najpopularniejszych narzędzi umożliwiających przeprowadzanie testów wydajnościowych oraz jakie są możliwości ich integracji z serwerem CI
    6. Użyteczne opcje
      1. Opis użytecznych opcji wspomagających testowanie, oraz jak wygląda praca z wynikami testów(raportowanie błędów, opcje powiadamiania)
    7. Optymalizacja
      1. Przedstawienie praktyk i rozwiązań umożliwiających optymalizację wykonywania testów, aby wyniki były bardziej wiarygodne i szybciej dostępne
  5. Statyczna analiza kodu
    1. Narzędzia
      1. Przegląd dostępnych narzędzi(PMD, Sonar, CheckStyle, FindBugs), jakie są ich zalety, wady oraz potencjalne zastosowania
    2. Integracja
      1. Opis procesu integracji z serwerem CI, przykłady użytkowania oraz pracy z wynikami
    3. Korzyści
  6. Zalecane praktyki
    1. Przykłady optymalizacji
      1. Przedstawienie przykładów oraz kluczowych praktyk i elementów które pozwolą uczestnikom na dalszą samodzielną optymalizację
    2. Wzorce i anty-wzroce
      1. Zaprezentowanie najczęściej występujących błędów projektowych oraz ogólnie sprawdzonych i rekomendowanych praktyk.
    3. Repozytorium Maven’a
      1. Przedstawienie możliwości wykorzystania repozytorium Maven’a w środowisku CI, jak również korzyści i wyzwań z tego płynącyh
    4. Trudne problemy
      1. Przedstawienie podstawowych i najczęściej występujących problemów oraz ich potecjalnych rozwiązania.
  7. Zaawansowane praktyki
    1. Rozproszone budowanie
      1. Zaprezentowanie możliwości wykonywania planów w środowisku rozproszonym, jakie płyną z tego korzyści oraz jakie niesie to wyzwania
    2. Integracja z systemami zewnętrznymi
      1. Zaprezentowanie konkretnych przykładów użytkownika CI w środowisku Cloud czy też integracji z narzędziami zewnętrznymi, np.: Atlassian JIRA
    3. Rozszerzanie funkcjonalności
      1. Opis możliwości rozszerzania funkcjonalności popularnych serwerów CI za pomocą pluginów, tworzenie i konfiguracja
    4. Współbieżność
      1. Przedstawienie funkcjonalności współbieżnego wykonywania planów, przykłady zastosowań, korzyści i kosztów
    5. Wspieranie repozytoriów
      1. Omówienie wspieranych repozytoriów kodu źródłowego przez serwery CI, jakie oferują one funkcje pomocnicze, dodatkowo opis wsparcia dla DVCS(jak Git czy Mercurial), przykłady użytkowania
    6. Automatyczna integracja baz danych
      1. Przedstawienie koncepcji oraz korzyści z niej płynących, operacji bazodanowych podlegających automatyzacji oraz przykładowych rozwiązań/strategii
  8. Wstęp do Git­a
    1. Historia
    2. Dlaczego rozproszony system kontroli wersji
    3. Instalacja
  9. Podstawy
    1. tworzenie projektu - różne scenariusze
    2. wersjonowanie zmian
    3. przeglądnie historii zmian
    4. cofanie zmian
    5. tagowanie
    6. codzienna praca - typowe czynności
  10. Branching i merging
    1. podstawowy
    2. zarządzanie branch­ami
    3. zdalne branch­e
    4. rebasing
    5. jednoczesna praca z master i branch
    6. nalepsze praktyki
  11. Git i Eclipse
    1. wersjonowanie
    2. branching i merging
    3. praca ze zdalnymi repozytoriami
  12. Workflow
    1. Git flow
      1. development
      2. feature branching
      3. hotfixes
      4. release branching
      5. releasing
    2. tips and tricks
    3. Wstęp do Continuous Delivery


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zapytaj o szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Wyrażam zgodę na przetwarzania danych osobowych zgodnie z ustawą o ochronie danych osobowych w związku z wysłaniem zapytania przez formularz kontaktowy.

Podanie danych jest dobrowolne ale niezbędne do przetworzenia zapytania. Zastałem/am poinformowany/na, że przysługuje mi prawo dostępu do swoich danych, możliwości ich poprawienia, żądania zaprzestania ich przetwarzania.

Administratorem danych osobowych jest Bottega IT Minds, ul. Jana Sawy 2, 20-632 Lublin.


Klauzula informacyjna