czwartek, 4 marca 2010

Szkolenie Test-Driven Development

Szkolenie ze Zwinnego Rozwijania Oprogramowania zostało dobrze przyjęte przez uczestników. Dało nam to dużo radości, satysfakcji, jak również motywacji do tego, aby kontynuować dzielenie się swoją wiedzą i umiejętnościami.

Tym razem chcemy przekazać wiedzę, która wydaje się nam, zespołowi Pragmatists, bardzo cenna. Test-Driven Development, czyli sposób programowania, w którym zaczynamy od wyrażenia w kodzie naszych intencji, wywiera ogromny pozytywny wpływ na naszą pracę. Bezpieczniejsze, pewniejsze kodowanie. Rzadsze korzystanie z debuggera. Mniej defektów. Lepszy design. Czytelniejszy kod. Krótko mówiąc - zupełnie inaczej niż kiedyś i bardzo przyjemnie.

Zatem zapraszamy na szkolenie, gdzie podzielimy się naszym doświadczeniem ze stosowania TDD w prawdziwych, komercyjnych projektach. Adresowane jest do programistów i architektów (wymagana znajomość Javy). Możecie liczyć na solidną porcję wiedzy, ale przede wszystkim mnóstwo ćwiczeń, warsztatów, oglądania i pisania kodu. Czas trwania to 3 dni, od 19 do 21 kwietnia 2010. Więcej szczegółów zamieścimy już wkrótce.

Szkolenie poprowadzi wraz ze mną Michał Margiel, pasjonat Javy, współorganizator Javarsovii, codziennie test-drive'ujący mnóstwo dobrego kodu.

Poniżej treści, które zamierzamy poruszyć, a większość z nich także przećwiczyć praktycznie podczas warsztatów.

Wprowadzenie do TDD

  • czym jest TDD (cykl Red-Green-Refactor, porównanie do test-last)
  • korzyści ze stosowania TDD
  • TDD a projektowanie (design)
  • TDD a BDD (Behaviour-Driven Design)
  • rodzaje i poziomy testów: jednostkowe, integracyjne, akceptacyjne itp.

Mechanika TDD

  • wprowadzenie do JUnit
  • nazewnictwo testów
  • wsparcie przez IDE (integracja z JUnit, automatyczne refaktoryzacje, skróty klawiaturowe)
  • dyscyplina i rytm
  • mocki (Mock Objects)
    • tworzenie ręczne
    • frameworki (szczególny nacisk na Mockito)
    • inne rodzaje zaślepek (Test Doubles)

Projektowanie obiektowe

  • projektowanie pod kątem testów (Testability)
  • zasady wspierające dobry design (SOLID principles, Inversion of Control/Dependency Injection, powiązania, spójność)

Pokonywanie przeszkód

  • tworzenie test-driven warstwy dostępu do danych
  • tworzenie test-driven interfejsu użytkownika (GUI)

Praca z odziedziczonym kodem (Legacy Code)

  • jak pracować bezpiecznie (testy charakteryzacyjne, zmienne ułatwiające śledzenie)
  • techniki rozcinania zależności (dependency breaking)
  • identyfikacja punktów newralgicznych

Gdzie iść dalej

  • utrzymywanie testów
  • różne podejścia (BDD, ATDD, podejście klasyczne, podejście mockowe)
  • programowanie w parach
  • pokrycie kodu testami (code coverage)
  • wprowadzanie TDD w zespole

Brak komentarzy:

Prześlij komentarz