Otwarte zapisy na: Pragmatyczna refaktoryzacja z użyciem technik Domain Driven Design (Java/PHP)

Formuła on-line z wykorzystaniem komunikatorów video.

Kod: refactor-DDD
Kategoria: Warsztaty eksperckie DDD
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 2 dni
Prowadzący: Jakub Pilimon
Mariusz Gil
Grupa docelowa: developerzy
Koszt:
1500 zł całość trafia na cele charytatywne
Lokalizacja: online
Data: 23.11.2020 - 24.11.2020
BRAK MIEJSC
Zapisy do: 13.11.2020

Przekształcenia “Extract Method”, “Replace If with Guardian” oraz “Extract Object” poprawiają czytelność kodu, ale nie ratują projektów, których bazowy model jest zły.

Jak w bezpieczny i pragmatyczny sposób dokonać refaktoryzacji, która przypomina wymianę kluczowej części systemu? Poniższy warsztat przedstawia szereg typowych problemów projektowych skategoryzowanych na bazie produkcyjnego, audytorskiego i konsultacyjnego doświadczenia z szeregu projektów z różnych dziedzin biznesowych.

Nie jest to kolejny warsztat, w którym krok po kroku przechodzimy po katalogu typowych “zapachów” kodu i sposobów ich eliminacji. Podczas zajęć analizujemy też architektoniczne problemy, których naprawa wykracza poza standardowe ramy refaktoryzacji, ale których bezpieczne wykonanie może owocować dostarczeniem wartości biznesowej bez 3-miesięcznego przestoju. Zdobywasz konkretną mapę nawigacyjną wraz z narzędziami pozwalającymi skutecznie identyfikować i eliminować wieloletnie problemy występujące w systemie. Wszystko to w sposób bezpieczny, poparty dobrymi praktykami inżynierskimi, Domain-Driven Design oraz możliwością odwrotu.

Podczas warsztatu poznasz także sposoby rozmowy z odbiorcami biznesowymi, którzy nie do końca są przekonani do podejścia refaktoryzacji. Pokażemy Ci konkretne metryki biznesowe, budujące wspólne zrozumienie pomiędzy zespołem deweloperskim, a interesariuszami biznesowymi.

Po warsztacie będziesz potrafić identyfikować i naprawiać problemy architektoniczne i implementacyjne wykorzystując podejście Domain-Driven Design, analizować historię repozytorium, metryki i stabilność kodu, także w kontekście podejścia Test-Driven Development, programowania obiektowego/funkcyjnego, modularyzacji i wielu innych.

Program Szkolenia

  1. Typowe przypadki
    1. Co zrobić z duża i nieestetyczną klasą?
    2. Co zrobić z dużą i estetyczną klasą?
    3. Jak naprawić odwieczny problem - brak spójności danych?
    4. Moja klasa/moduł ma bardzo dużo zależności i bardzo dużo logiki biznesowej, jak to podzielić?
    5. Bazowy model mojego modułu jest niedopasowany do potrzeb biznesu, co zrobić?
    6. Jak naprawić niewydajne i bardzo złożone odczyty danych?
    7. W moim projekcie brak jasno wydzielonych granic, jak to naprawić?
  2. Sprawdzona Ścieżka Refaktoryzacji
    1. Odkrywanie i opisywanie problemu
      1. Drivery architektoniczne
    2. “Sprzedawanie” i marketing rozwiązań
      1. Odbiorca techniczny
        1. Egoless programming
      2. Odbiorca biznesowy
        1. Wektor nowej funkcji biznesowej
        2. Wektor nowej funkcji dla nowych klientów
        3. Wektor nowej funkcji dla jednego z nowych klientów
        4. Odwracanie zmian
    3. Lokalizacja prawdziwych problemów
      1. Zbieranie i interpretowanie metryk
      2. Wykrywanie punktów krytycznych
      3. Identyfikacja “zapachów”
      4. Kod stabilny vs kod zmieniany
      5. Analiza historii repozytorium
      6. Podejście Domain-Driven Design
    4. Planowanie zmian
      1. Efekt “Brzydkiego Kaczątka”
      2. Problem “You are never done”
    5. Wprowadzanie zmian
      1. Refaktoryzacja mechaniczna/taktyczna
      2. Refaktoryzacja architektoniczna/strategiczna
    6. Wdrażanie zmian
      1. Cykle i mikrocykle
    7. Obserwacja efektów
      1. Bezpieczny odwrót
  3. Refaktoring ciągły
    1. Wsparcie ze strony IDE
    2. Identyfikowanie szwów
      1. Wspólne zrozumienie i Edukacja
        1. Code Review
        2. ArchUnit i inne narzędzia
    3. Konwencje jako driver architektoniczny
    4. Refaktoring bez znajomości problemu biznesowego
      1. Jak to robić bezpiecznie?
  4. Refaktoring przygotowujący
    1. Nowe funkcje biznesowe
    2. Naprawa obecnych funkcji biznesowych
    3. Naprawa atrybutów jakościowych
    4. Budowanie zaufania
    5. Metryki biznesowe jako element marketingu refaktoryzacji
  5. Wdrażanie zmian
    1. Testy
      1. Odkrywanie szwów
      2. Technika ułatwiania testów poprzez obniżanie szwów
      3. Testy charakterystyki systemu
      4. Testy i szwy jako odkrywanie granic modułów i uwalnianie potencjałów biznesowych
    2. Problem Big Bang Release
    3. Technika Step by Step
    4. Parallel Models jako jedyny sposób bezpiecznej strategicznej refaktoryzacji
      1. Bezpieczny odwrót
      2. Logi
      3. Zaawansowane metryki
      4. Samoleczący się system
      5. Możliwość codziennego budowanie zaufania do interesariusza projektowego
  6. Wykorzystanie Domain-Driven Design
    1. Hermetyzacja tego CO system powinien robić w serwisy aplikacyjne
    2. Hermetyzacja tego JAK i DLACZEGO system się tak zachowuje w Building Blocks DDD
    3. Praca nad słownictwem domenowym
    4. Zarządzanie wartością jest łatwiejsze niż encją
    5. Odkrywanie Value Objects, Agregatów oraz Polityk
    6. Polityki - hermetyzacja zmienności poza stabilnym interfejsem
    7. Rozwijalność i czytelność systemu poprzez trójpodział logiki
      1. Operations
      2. Policy
      3. Decision Support
    8. Podejście funkcyjne
    9. Hermetyzacja złożoności w jednym miejscu
    10. Podejście "od domeny" zamiast podejścia "od procesu"
    11. Separacja modelu pod kątem podatności na zmiany i niestabilności
  7. Wprowadzanie zmian
    1. Poziomy modelu
    2. Zmiana API
      1. API publiczne vs API prywatne
    3. Coupling, Coupling Logiczny i Data Coupling


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy będą wspólnie poprowadzić Twoje szkolenie.

Informacje logistyczne

Każda złotówka, którą wydacie na szkolenie trafi na cele charytatywne.
Wspieramy Krzysia, podopiecznego fundacji JiM: https://bit.ly/2RJJxBb
Darowizna dokonana bezpośrednio na konto fundacji upoważnia do udziału w szkoleniu. Zachęcamy do wsparcia Krzysia.

Zapisz się na 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

Materiały związane ze szkoleniem

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