Refaktoryzacja to teoretycznie bardzo dobrze znana koncepcja. Praktycznie każdy o niej słyszał. Ale czy wiemy jak do niej podejść w praktyce? Czy za teorią często nie stoi chęć napisania danego kodu od nowa ponieważ już go nie lubimy albo już nie nadaje się nawet do przeczytania i szybkiego zrozumienia?
To praktyczne szkolenie pokazuje jak podejść do refaktoryzacji w najmniejszych możliwych krokach, robiąc z niej naszą codzienną praktykę. Szkolenie ma za zadanie zmotywować programistów do wspólnej jak i samodzielnej pracy nad jakością kodu każdego dnia – co jest konieczne do dostarczenie kodu wysokiej wartości.
Podczas szkolenia przedstawiona zostanie koncepcja piramidy refaktoryzacji

  • Zrozumienie Algorytmu
  • Ekstrakcja mniejszych metod
  • Ekstrakcja mniejszych klas
  • Zauważenie relacji pomiędzy klasami (i wyłaniających się wzorców projektowych)
  • Uporządkowanie architektury (pakietów)

Szkolenie koncentruje się głównie na pracy z kodem źródłowym z wykorzystaniem wbudowanych zautomatyzowanych refaktoryzacji w narzędziach takich jak IntelliJ lub Eclipse. Kod źródłowy napisany jest w Javie. Trener wykonuje wszystkie przekształcenia refaktoryzacyjne na żywo, po czym uczestnicy mogą doświadczyć tego samego poprzez pracę z tym samym kodem na własnym laptopie. Pozostałe 25% czasu poświęcone jest na prezentację i dyskusję mające na celu zrobienia z refaktoryzacji codziennego nawyku każdego programisty / zespołu.
Szkolenie to nie jest szkoleniem z architektury. Różne zespoły mogą mieć różne preferencje dotyczące rozwiązań architektonicznych. Celem jest nauczenie jak łatwo i szybko można zmieniać architekturę kodu z jednego podejścia do innego.

Część 1

  1. Zapoznanie z prostym kawałkiem kodu który łatwo i szybko go można zrozumieć
  2. Dyskusja jak prosto i szybko można rozszerzać taki kawałek kodu metodą kopiuj-wklej równocześnie zmniejszając jego czytelność
  3. Podzielenie kodu na mniejsze części (metody, klasy, interfejsy) z użyciem podejścia Piramidy Refaktoryzacji
  4. Nauka wbudowanych automatycznych refaktoryzacji w środowisku IntelliJ lub Eclipse
  5. Zasady SOLID jako podstawy do podziału architektury na mniejsze części

Część 2

  1. Zapoznanie z kodem z części 1 gdzie nowa funkcjonalność została dodana bez dokonania jakichkolwiek refaktoryzacji
  2. Przedstawienie kolejnej dodatkowej funkcjonalności którą chcemy dodać do projektu
  3. Dyskusja, że możemy to zrobić szybko ale dalej obniżając czytelność i jakość kodu
  4. Wykonanie “ekstrakcji punktów rozszerzenia” jako wynik “podróży refaktoryzacyjnej” z użyciem koncepcji Piramidy Refaktoryzacji
  5. Dostarczenie nowej funkcjonalności jako nowa implementacja “punktu rozszerzenia” z użyciem TDD

Szkolenie jest bardzo intensywne i na podstawie doświadczeń (tj. przeprowadzenia go wiele razy) proponowane podejście do 2 dni po 4 godziny. Takie podejście pozwala także programistom na wrócenie do ich codziennych zajęć na pozostałą część dnia. Na życzenie szkolenie może także zająć 1 dzień (bardzo intensywny) lub zostać rozszerzone do dwóch pełnych dni.

Poziom: początkujący lub średnio zaawansowany, aczkolwiek starsi programiści także wielokrotnie twierdzili że dowiedzieli się wielu nowych rzeczy którymi mogli się następnie podzielić w zespole.

Podczas szkolenia nauczysz się jak zacząć od najmniejszych refaktoryzacji aby następnie zauważać wzorce projektowe które wyłaniają się z relacji pomiędzy mniejszymi klasami. “Refaktoryzacja do wzorców”  jest tematem drugiej części tego szkolenia.