Informacje dotyczące wszystkich szkoleń
Jeśli jeszcze tego nie zrobiłeś, przeczytaj ogólne informacje o wszystkich moich szkoleniach w zakładce Szkolenia. Zawierają one wspólne rzeczy, takie jak podstawowe idee i główne pojęcia, których używam we wszystkich moich szkoleniach. Na każdym szkoleniu prezentuję inne rzeczy, ale wszystkie mają wpływ na tworzenie oprogramowania wysokiej jakości.
Cele szkolenia
Zdobycie umiejętności codziennej pracy z długiem technicznym poprzez ciągłą refaktoryzację kodu na bardziej czytelny i rozszerzalny.
Ten praktyczny warsztat uczy, jak zachować jakość kodu poprzez refaktoryzację w możliwie najmniejszych krokach, aby stała się codzienną praktyką. Pozwala to na kontynuowanie znacznie bardziej złożonych refaktoryzacji, gdy zajdzie taka potrzeba. Zespół nabędzie umiejętności refaktoryzacji, a jego członkowie zyskają inspiracje, w jaki sposób wprowadzić nawyki związane z dbaniem o jakość kodu do codziennych zajęć.
wide-growth
Zaczynamy od zdobywania nowych umiejętności technicznych budując równocześnie świadomość jak nasze podejście do organizacji pracy zostaje odzwierciedlone w jakości kodu. Uczestnicy poznają w jaki sposób mogą mieć swój udział i odpowiedzialność aby refaktoryzacja zagościła na stałe w procesach zespołu poprawiając jakość kodu.
Więcej o szkoleniu - być może za długo 🙂
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?
Podczas szkolenia przedstawiona zostanie koncepcja piramidy refaktoryzacji
Pyramid of refactoring Wide
  • Upraszczanie logiki algorytmów
  • Ekstrakcja mniejszych metod
  • Ekstrakcja mniejszych klas
  • Zauważanie wzorców projektowych
  • Porządkowanie architektury
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.
Plan szkolenia
Część 1
  • Zapoznanie z “codziennym” kawałkiem kodu który przecież szybko można zrozumieć i “rozwijać”
  • Pokazanie jak ten “szybki rozwój” metodą kopiuj-wklej zmniejszy równie szybko czytelność
  • Refaktoryzacja od najprostszym przekształceń jak ekstrakcje zmiennych, metod, parametrów z tych metod poprzez przenoszenie tych metod do istniejących jak i nowych klas aż do ukrywania klas za ich abstrakcjami
  • Prezentacja Piramidy Refaktoryzacji, tego w jaki sposób jej koncepcja została zastosowana przy kolejności powyższych refaktoryzacji
  • Nauka wbudowanych automatycznych refaktoryzacji w środowisku IntelliJ lub Eclipse
  • Zastosowanie zasad SOLID jako podstawy do podziału architektury na mniejsze części
Część 2
  • Zapoznanie z rozszerzonym kodem z części 1 gdzie nowa funkcjonalność została dodana bez dokonania jakichkolwiek refaktoryzacji
  • Przedstawienie kolejnej dodatkowej funkcjonalności którą chcemy dodać do projektu
  • Dyskusja, że możemy to zrobić szybko ale dalej obniżając czytelność i jakość kodu
  • Wykonanie “ekstrakcji punktów rozszerzenia” jako wynik “podróży refaktoryzacyjnej” z użyciem koncepcji Piramidy Refaktoryzacji
  • Dostarczenie nowej funkcjonalności jako nowa implementacja “punktu rozszerzenia” z użyciem TDD
Długość szkolenia
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.
Decelowi odbiorcy
Poziom ś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.