Refaktoring legacy do Domain Driven Design

Kod: DDD-refaktoring
Kategoria: Domain Driven Design
Forma: 40% wykłady / 60% warsztaty
Czas trwania: 3 dni
Grupa docelowa: analitycy
developerzy
architekci
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.
Data i dokładny zakres do ustalenia podczas analizy przed-szkoleniowej.

Podczas szkolenia uczestnicy poznają techniki umożliwiające refaktoryzację istniejących systemów w celu zmniejszenia nakładu pracy związanego z ich utrzymaniem.

Równoległym celem refaktoryzacji jest wsteczna inżynieria modelu, który nie był utrzymywany i został rozmyty.

Dodatkowym celem będzie poznawanie zachowania i struktury w celu naprawiania błędów i wprowadzania nowych funkcjonalności oraz refaktoryzacja designu.

Podczas warsztatów praktycznych uczestnicy będą refaktoryzowac istniejący kod i pisać testy regresyjne. Uczestnicy zrefaktoryzują istniejący system pod kątem wprowadzenia nowych funkcjonalności.

Szkolenia powinno zostać poprzedzone szkoleniami z zakresu: Technik modelowanie DDD oraz Technik implementacji DDD.

Wyróżniki szkolenia

Podczas zajęć możesz oczekiwać szczególnych akcentów położonych na poniższe aspekty:

  • Wzrost morale przez odzyskanie w to, że jest jeszcze szansa...

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. Czytanie kodu
    1. Zbieranie i interpretowanie metryk
    2. Wykrywanie punktów krytycznych systemu
    3. Przegląd kodu i identyfikowanie "zapachów"
  2. Podstawy refaktoryzacji
    1. Podstawowe techniki rafaktoryzacji
    2. Wsparcie ze strony IDE
    3. Identyfikowanie szwów i rozdzielanie zależności
    4. Zaawansowane refaktoringi w wielu krokach
    5. Tworzenie planu refaktoringu
    6. Refakatoryzacja designu
    7. Refaktoryzacja do wzorca
  3. Wykorzystanie technik modelowania w procesie refaktoringu
    1. Zmiana podejścia w celu redukcji ilości reguł jakie należy brać pod uwagę
      1. podejście "od domeny" zamiast podejścia "od procesu"
    2. Techniki lingwistyczne
      1. Wyłanianie Domain Story
      2. Techniki pełnych zdań zamiast zbierania rzeczowników
      3. Eksploracja domeny przy pomocy zdań podmiot.orzeczenie(dopełnienie, przydawka)
      4. Gibberish Game - usuwanie dwuznaczności i odkrywanie nowych koncepcji domenowych
      5. Słowo-Znaczenie(Kontekst)-Reguły
        1. Odwrócenie kolejności w celu odkrywania ukrytych koncepcji domenowych
    3. Techniki wizualizacji
      1. Grupowanie operacji wokół niezmienników
      2. Metafory wizualne realnych Agregatów
      3. Poziomy modelu
      4. Separacja modelu pod kątem podatności na zmiany i niestabilności
  4. Rozwarstwienie logiki jako główna strategia refaktoryzacji
    1. Wyłanianie Use Case/User Story w warstwie aplikacji
      1. Projektowanie API systemu
      2. Hermetyzacja tego CO system powinien robić w serwisy aplikacyjne
    2. Wyłanianie modelu biznesowego z building blocks warstwy domenowej
      1. Hermetyzacja tego JAK i DLACZEGO system się tak zachowuje w Building Blocks DDD
      2. Początek pracy - wyłanianie Value Objects
        1. Praca nad słownictwem domenowym
        2. Zarządzanie wartością jest łatwiejsze niż encją
      3. Wyłanianie Agregatów
        1. Grupowanie atrybutów ze względu na spójną zmianę w Use Case
        2. Grupowanie atrybutów ze względu na ochronę niezmienników
      4. Serwisy Domenowe - wyłanianie pod-procedur biznesowych
      5. Polityki - hermetyzacja zmienności poza stabilnym interfejsem
      6. Fabryki - hermetyzacja kreacji obiektów w jednym miejscu
      7. Cztery poziomy modelu ze względu na podatność na zmiany
        1. Capability
        2. Operations
        3. Policy
        4. Decision Support
      8. Szukanie stabilności
        1. Open-close Principle w praktyce
        2. Model stabilny - Agregaty i Serwisy Domenowe
        3. Domknięcia modelu - polityki
        4. Podejście funkcyjne
        5. Wybór domknięć - fabryki
        6. Hermetyzacja złożoności w jednym miejscu
  5. Testowanie regresyjne
    1. Sposoby testowania systemu
    2. Rodzaje testów i przykłady ich wykorzystania
    3. Automatyzacja procesu testowania
    4. Wybór strategii testowania w projekcie
    5. Pisanie testów automatycznych w projekcie, który ich nie posiada


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ń