O szkoleniu

Program szkolenia

  • Wprowadzenie do zagadnień Continuous Integration
  1. O dojrzewanie idei
  2. Super szybki prototyp z linii komend
  3. O redukcji ryzyka
  4. Czy należy budować przy każdej zmianie?
  5. Narzędzia
  • Kontrola wersji
  1. Wybór właściwego systemu
  2. Właściwa budowa repozytorium i projektu
  3. Uporządkowany projekt jako klucz do sukcesu
  4. Subversion vs. TFS Source Control vs. Git
  5. Dlaczego w repozytoriom powinno znajdować się wszystko, co jest potrzebne do zbudowania oprogramowania?
  • Automatyzacja buildów
  1. Minimalizacja błędów poprzez automatyzację powtarzalnych czynności
  2. Wszystkie dzieci Make
  3. Skryptowe narzędzia automatyzacji – MSBuild i Ant
  4. Zasada pojedynczego aktywatora czyli dlaczego automatyzację warto oddzielić od IDE
  5. Rozszerzanie możliwości narzędzi automatyzacyjnych
  • Serwer Continuous Integration
  1. Od grafu zorientowanego do pętli zadań
  2. Wybór serwera integracyjnego
  3. Dlaczego build nie powinien trwać dłużej niż 10 minut
  4. Dodatkowe funkcje serwerów – kolejkowanie, pre-test commit
  • Testowanie
  1. Testowy zawrót głowy: testy jednostkowe, integracyjne, akceptacyjne, systemowe, użytkownika
  2. Wybór zakresu testowania dla ciągłej integracji
  3. NUnit i JUnit w akcji
  4. Mierzenie pokrycia testami jednostkowymi
  5. Organizacja testów – szybkie testy na początku
  6. Przerywanie integracji po pierwszym nieudanym teście
  7. Informacje zwrotne – dlaczego powinny być natychmiastowe
  8. Rozszerzanie repertuaru czyli FitNesse, White i inne Framework
  • Integracja baz danych
  1. Testy w bazach danych
  2. Wypełnianie bazy danych danymi testowymi czyli dbamy o powtarzalność testów
  3. Dlaczego programiści powinni pracować na lokalnej bazie danych?
  4. O przechowywaniu artefaktów baz danych w repozytorium.
  • Utrzymanie schludnego kodu
  1. Statyczna analiza kodu
  2. Dlaczego zasady kodowania to najważniejszy dokument w grupie programistów?
  3. Eliminacja zdublowanego kodu
  4. Różnice w analizie kodu prekompilowanego i źródłowego
  5. Używanie metryk kodu do jego weryfikacji
  • Generowanie i utrzymanie dokumentacji
  1. Dlaczego warto wykorzystać kod źródłowy do wytwarzania dokumentacji projektu?
  2. O tym, że generowanie dokumentacji nie zwalnia z obowiązku dokumentowania
  • Deployment
  1. Integralna część procesu ciągłej integracji
  2. Utrzymywanie pełnej gotowości do wdrożenia
  3. Wersjonowanie kodu
  • Skalowanie procesu Countinuous Integration
  1. Przezwyciężanie niechęci grupy
  2. Wzorce i antywzorce
  3. Siedem grzechów głównych powolnej integracji
  4. Rozpraszanie architektury integracyjnej

Szkolenie z życia wzięte

Szkolenie w 100% polega na doświadczeniach trenera zdobytych w międzynarodowych projektach programistycznych prowadzonych w małych i średnich grupach projektowych. Zagadnienia teoretyczne zbalansowane są bogatym materiałem praktycznym prezentującym proste acz z życia wzięte przykłady zastosowania Continuous Integration.

Od uczestników szkolenia wymagana jest podstawowa wiedza z zakresu programowania w .NET lub Java.

Trener – autor książki „Continuous Integration in .NET”

Marcin Kawalerowicz

Autor książki „Continuous Integration in .NET„ (Manning Publications Co.). Scrumalliance Certified Scrum Master posiada wieloletnie doświadczenie w zarządzaniu grupą programistyczną w niemieckich i polskich firmach, gdzie realizował projekty dla dużego banku kredytowego w Szwajcarii i równie dużego producenta samochodów z Bawarii. Zdobyte doświadczenie przekazuje we własnej firmie konsultingowej, a umiejętności techniczne i organizacyjne w firmie CODEFUSION – młodym zespole programistów wytwarzającym najwyższej jakości oprogramowanie. Jego dorobek to m.in. artykuły w wielu znanych pismach drukowanych i elektronicznych. Jako programista specjalizuje się w programowaniu na platformach ASP.NET i Silverlight, w dziedzinach finansowych.

Wymagania od uczestników

Doświadczenie w programowaniu w .NET / Java lub doświadczenie w prowadzeniu projektów IT tych narzędzi. Szkolenie W części teoretycznej zawiera uniwersalne treści, natomiast część praktyczna prowadzona jest z wykorzystaniem narzędzi co dziennego użytku w projekcie programistycznym.

Wprowadzenie do zagadnień Continuous Integration

O dojrzewanie idei

Super szybki prototyp z linii komend

O redukcji ryzyka

Czy należy budować przy każdej zmianie?

Narzędzia

Kontrola wersji

Wybór właściwego systemu

Właściwa budowa repozytorium i projektu

Uporządkowany projekt jako klucz do sukcesu

Subversion vs. TFS Source Control vs. Git

Dlaczego w repozytoriom powinno znajdować się wszystko, co jest potrzebne do zbudowania oprogramowania?

Automatyzacja buildów

Minimalizacja błędów poprzez automatyzację powtarzalnych czynności

Wszystkie dzieci Make

Skryptowe narzędzia automatyzacji – MSBuild i Ant

Zasada pojedynczego aktywatora czyli dlaczego automatyzację warto oddzielić od IDE

Rozszerzanie możliwości narzędzi automatyzacyjnych

Serwer Continuous Integration

Od grafu zorientowanego do pętli zadań

Wybór serwera integracyjnego

Dlaczego build nie powinien trwać dłużej niż 10 minut

Dodatkowe funkcje serwerów – kolejkowanie, pre-test commit

Testowanie

Testowy zawrót głowy: testy jednostkowe, integracyjne, akceptacyjne, systemowe, użytkownika

Wybór zakresu testowania dla ciągłej integracji

NUnit i JUnit w akcji

Mierzenie pokrycia testami jednostkowymi

Organizacja testów – szybkie testy na początku

Przerywanie integracji po pierwszym nieudanym teście

Informacje zwrotne – dlaczego powinny być natychmiastowe

Rozszerzanie repertuaru czyli FitNesse, White i inne Framework

Integracja baz danych

Testy w bazach danych

Wypełnianie bazy danych danymi testowymi czyli dbamy o powtarzalność testów

Dlaczego programiści powinni pracować na lokalnej bazie danych?

O przechowywaniu artefaktów baz danych w repozytorium.

Utrzymanie schludnego kodu

Statyczna analiza kodu

Dlaczego zasady kodowania to najważniejszy dokument w grupie programistów?

Eliminacja zdublowanego kodu

Różnice w analizie kodu prekompilowanego i źródłowego

Używanie metryk kodu do jego weryfikacji

Generowanie i utrzymanie dokumentacji

Dlaczego warto wykorzystać kod źródłowy do wytwarzania dokumentacji projektu?

O tym, że generowanie dokumentacji nie zwalnia z obowiązku dokumentowania

Deployment

Integralna część procesu ciągłej integracji

Utrzymywanie pełnej gotowości do wdrożenia

Wersjonowanie kodu

Skalowanie procesu Countinuous Integration

Przezwyciężanie niechęci grupy

Wzorce i antywzorce

Siedem grzechów głównych powolnej integracji

Rozpraszanie architektury integracyjnej