| Tytuł: | Codzienna Refaktoryzacja Kodu Legacy |
| Kod: | ref-patterns |
| Kategoria: | Refaktoryzacja kodu legacy |
| Forma: | 20% wykłady, 80% ćwiczenia |
| Czas trwania: | 3 dni |
| Odbiorcy: | developerzy |
| Zapisy: |
Indywidualne zamówienie i dopasowanie dla grupy. |
| Logistyka: |
W siedzibie klienta lub w innym dowolnym miejscu. |
Efektywna refaktoryzacja to refaktoryzacja skuteczna.
Taka która przynosi widoczne efekty dla samopoczucia programistów kiedy widzą jej rezultaty jako bardziej czytelny i zrozumiały kod. A to z kolei pozwoli im nadal rozwijać swój projekt, ponieważ będą potrafić na bieżąco zadbać o równowagę pomiędzy wartością biznesową dla klienta a jakością techniczną.
Skuteczność refaktoryzacji zależy od wielu obszarów naszej pracy. Wbrew pozorom same umiejętności techniczne programistów nie wystarczą chociaż są niezbędne. Aby refaktoryzacja miała swoje stałe miejsce, potrzeba wprowadzić ją do naszej świadomości, wprowadzić jako nawyk do zespołów oraz jako jawną część procesu tworzenia oprogramowania. Wówczas nigdy nie będzie mogła być pomijana.
W tym celu oprócz umiejętności technicznych trzeba rozwinąć także inne obszary otaczające świat programistów. Wśród nich najważniejsze to zadbanie o swoją efektywność osobistą i efektywność pracy zespołu poprzez zbudowanie świadomości jak rezultaty pracy są zależne od funkcjonowania całego zespołu.
Wprowadzanie wszystkich usprawnień zaczyna się od świadomości tego jak organizacja pracy zostaje odzwierciedlona w jakości kodu który dostarcza zespół. W rezultacie będziemy mogli mieć pozytywny wpływ na jakość kodu poprzez zmiany od strony organizacyjnej które umożliwią ciągła refaktoryzację.
Powyższe inspiracje zostaną przedstawione na podstawie takich koncepcji jak “7 Nawyków Skutecznego Działania” Stephena Coveya, “5 Dysfunkcji Pracy Zespołowej’ Patricka Lencioni czy też 6 źródeł wpływu wypracowanych z laboratoriach VitalSmarts w Utah.
To praktyczno-teoretyczne szkolenie pokazuje jak podejść do refaktoryzacji w najmniejszych możliwych krokach, robiąc z niej naszą codzienną praktykę, w której codziennie będziemy wzrastać. Poprzez małe kroki, które staną się naszym nawykiem będziemy wykonywać coraz bardziej skomplikowane refaktoryzacje, aż zaczniemy odkrywać wzorce projektowe.
Wzorce projektowe to coś powszechnego. Warto więc z nich skorzystać skoro już są pewne bo sprawdzone. Najprawdopodobniej dostarczą nam oczekiwanych rezultatów polegających na otrzymaniu kodu który jest zrozumiały ale przede wszystkim łatwiej go będzie można rozwijać o kolejne elementy.
Szkolenie oparte jest na koncepcji piramidy refaktoryzacji. Umożliwia ona rozpoczęcie od najprostszych refaktoryzacji a następnie stopniowe przechodzenie do tych bardziej złożonych.
- 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 ewentualnie Eclipse (prze mniejszym zakresie szkolenia). 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 prezentacje i dyskusje o możliwościach wprowadzenia refaktoryzacji jako codziennego nawyku do pracy zespołu.
Szkolenie to nie jest szkoleniem z architektury. Różne zespoły mogą mieć różne preferencje dotyczące rozwiązań architektonicznych. Celem szkolenia jest nauczenie jak łatwo i szybko można zmieniać architekturę kodu z jednego podejścia do innego.
Wyróżniki warsztatu
- Refaktoryzacja w kontekście nawyków skutecznego działania
- Proces w kontekście dysfunkcji pracy zespołowej
- Praktycznie, nieksiążkowe wykorzystanie wzorców projektowych
Program Warsztatu eksperckiego
Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.-
Dzień 1 - myśl przewodnia: "7 Nawyków Skutecznego Działania"- 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
- Zapoznanie z “codziennym” kawałkiem kodu który przecież szybko można zrozumieć i “rozwijać”
- 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
- Zapoznanie z rozszerzonym kodem z części 1 gdzie nowa funkcjonalność została dodana bez dokonania jakichkolwiek refaktoryzacji
- Część 1
-
Dzień 2 - myśl przewodnia "5 Dysfunkcji Zespołu"- Refaktoryzacje w małych krokach oparte o koncepcję piramidy refaktoryzacji zakończone uzyskaniem implementacji poniższych wzorców projektowych
- Interpreter
- Chain of Responsibility
- Composite
- Factory Method / Abstract Factory
- State
- Interpreter
- Refaktoryzacje w małych krokach oparte o koncepcję piramidy refaktoryzacji zakończone uzyskaniem implementacji poniższych wzorców projektowych
-
Dzień 3 - myśl przewodnia: "6 źródeł wpływu"- Refaktoryzacje w małych krokach oparte o koncepcję piramidy refaktoryzacji zakończone uzyskaniem implementacji poniższych wzorców projektowych
- (Fluent) Builder
- Proxy
- Template
- Bridge
- Command
- Adapter
- (Fluent) Builder
- Refaktoryzacje w małych krokach oparte o koncepcję piramidy refaktoryzacji zakończone uzyskaniem implementacji poniższych wzorców projektowych
Pobierz program w formacie PDF
Trenerzy
Poznaj ekspertów, którzy mogą poprowadzić Twój Warsztat.