Test Driven Development w C++ od ogółu do szczegółu

Tytuł: Test Driven Development w C++ od ogółu do szczegółu
Kod: CCPP-craft-C++ TDD
Kategoria: Craftsmanship dla programistów C i C ++
Forma: 40% wykłady / 60% warsztaty
Czas trwania: 3 dni
Odbiorcy: architekci, developerzy
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Szkolenie przeznaczone jest dla programistów, którzy w codziennej pracy korzystają z języka C++.

.

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. TDD – podstawowe założenia
    1. Test(y) i automatyzacja
    2. Implementacja bez szczególnego nacisku na jakość
    3. Refaktoryzacja – konieczna część całego procesu
  2. Dobry start
    1. Makro-architektura podstawą sukcesu
      1. Paradygmat OOP i jego poprawne rozumienie
      2. Stosowanie sprawdzonych technik na rzecz testowalnego i rozszerzalnego kodu
    2. POSA czyli architektura w oparciu o sprawdzone wzorce
  3. Test(y)
    1. Definicja punktu odcięcia (inflection point)
    2. Projekt testu(ów)
    3. Framework i jego możliwości
  4. Implementacja
    1. Dbałość o szczegóły a dbałość o architekturę
    2. Implementacja zorientowana na działanie
    3. Otestowanie zupełne – wprowadzenie testów dla tzw. „corner case'ów”
  5. Refaktoryzacja
    1. Czym jest refaktoryzacja?
    2. Kiedy zacząć refaktoryzację?
    3. Refaktoryzacja właściwa (do wzorców)
      1. Upraszczanie kodu
        1. Ekstrakcja metod
        2. Strategia w zamian za naiwne warunki logiczne
        3. Zamiana upiększeń w dekorator
        4. Klasy stanu na rzecz wyrażeń zmian stanu
      2. Tworzenie obiektów
        1. Metody tworzące obiekty vs. naiwne konstruktory
        2. Fabryka abstrakcyjna
        3. Budowniczy dla tworzenia skomplikowanych struktur i kompozytów
        4. Singleton – a może zło wcielone
      3. Uogólnianie kodu
        1. Metoda szablonowa – wprowadzenie dziedziczenia na rzecz polimorfizmu
        2. Kompozyt – traktowanie zbiorów jak jednostki
        3. Obserwator do obsługi notyfikacji
        4. Adapter na rzecz unifikacji interfejsów
        5. Interpreter – obsługa niejawnych języków
      4. Prewencja
        1. Akumulacja
        2. Gromadzenie danych w parametrze zbierającym
        3. Visitor do zbierania danych
  6. Value objects – zamiana typów prostych klasami
  7. Narzędzia
    1. Cppcheck – statyczna analiza kodu
    2. CPD – copy paste detector
    3. CCCC – analiza złożoności logicznej
    4. Valgrind – analiza sterty (memcheck), śledzenie wskaźników (ptrcheck), analiza wielowątkowa (hellgrind)
  8. R.I.P. TDD – problemy
    1. Over-engineering
    2. Późna informacja zwrotna o trafności decyzji w fazie planowania architektury
    3. Błędy logiczne
    4. Trudności w dokumentowaniu
    5. Przytłoczenie – trudości w wyobrażeniu testu
    6. Trudności w ukryciu separacji API od szczegółów implementacyjnych
    7. Trudności w komunikacji
    8. Ciągły niepokój – czy wszystko zmierza w dobrym kierunku?
  9. Zastosowanie TDD w pracy z kodem „legacy”
    1. Bezpieczne wprowadzenie zmian w oparciu o TDD
    2. Zbieżność metodyki postępowania
      1. Inflection point
      2. Test
      3. Change
      4. Check


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.

Wymagania przed Szkoleniem

Środowisko
  • System operacyjny: do uzgodnienia  
  • Kompilatory: do uzgodnienia  
  • Framework'i: Gtest, Gmock 

Zamów 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ń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.