fbpx
Cele szkolenia
Zdobycie umiejętności wypracowywania przez zespół wspólnego zrozumienia jakości kodu aby w małych krokach zmieniać zastany kod legacy w kierunku uzgodnionych standardów. Te standardy oczywiście także podlegają dalszej dyskusji i kolejnym aktualizacjom.

Zdobycie umiejętności modyfikacji architektury kodu na bardziej rozszerzalną, czytelną i testowaną poprzez zastosowanie wzorców projektowych.

JBCNConf 2019 – Warsztaty z refaktoryzacji kodu
Uczestnicy
  • powrócą z pomysłami zmian w organizacji pracy w swoich zespołach aby umożliwić ciągłą poprawę zastanego kodu legacy do czystego kodu
  • będą praktykować refaktoryzacje kodu w kierunku wzorców projektowych
  • poznają bliżej wybrane wzorce projektowe
  • doświadczą czy, kiedy i jak pracować nad redukcją długu technicznego
Dodatkowo kursanci doświadczą, w jaki sposób wzorce projektowe mogą utrudniać pracę, kiedy zostaną zastosowane nieprawidłowo. Ostatecznie zdobyta wiedza pomoże dostosowywać architekturę kodu do zmieniających się wymagań.
O szkoleniu

Uczestnicy będą pracować na żywo wraz z trenerem nad ciągłą poprawą jakości kodu, od najmniejszych zmian powodujących lepszą czytelność i oszczędność czasu potrzebnego do jego zrozumienia aż do wprowadzenia wzorców projektowych. Wzorce te umożliwiają zastosowanie sprawdzonych i powtarzalnych rozwiązań architektonicznych dla podobnych grup problemów / wyzwań.

Technicznie jest to ciągła zmiana zastanego kodu “legacy” na czysty (czystszy) kod polegająca bardzo regularnych poprawkach jakości tam i tylko tam gdzie teraz dokonywane są zmiany. Jest to tzw. zasada skauta.
Czysty kod jest bardzo znanym terminem, który został wprowadzony przez wujka Boba. Opisuje, jak powinien wyglądać dobry kod poprzez zasady umożliwiające jego utrzymanie. Są to różne reguły jak SOLID oraz atrybuty, takie jak czytelność, rozszerzalność, testowalność i inne.
Podczas warsztatu zostanie omówiona koncepcja Piramidy Refaktoryzacji, która definiuje grupy zagadnień do pracy z zastanym kodem legacy jako zależne od siebie warstwy.
Pyramid of refactoring Wide
  • Czysta logika sterowania
  • Ekstrakcja mniejszych metod
  • Budowa mniejszych klas
  • Poszukiwanie wzorców projektowych
  • Czysta Architektura

Wzorce projektowe są powszechnymi rozwiązaniami podobnych grup problemów. Okazały się przydatne i pomocne ze względu na ich przydatność do ponownego użycia i skuteczność.

Wzorce projektowe w programowaniu zostały po raz pierwszy opisane w 1994 r. w książce „Wzorce projektowania : elementy architektury oprogramowania wielokrotnego użytku”. Po wielu latach jeden z autorów książki – Ralph Johnson – w swoim przemówieniu „21 lat wzorców projektowych” powiedział: „Moglibyśmy zrobić to lepiej, ale myślę, że poradziliśmy sobie całkiem dobrze”.

Kiedy ilość linii kodu jest coraz większa, to najczęściej brakuje jakiegoś wzorca projektowego. To wtedy myślimy „gdybym tylko wcześniej użył(a) wzoca strategii / stanu / łańcucha odpowiedzialności zamiast tych wszystkich zagnieżdżonych instrukcji warunkowych if-else …”. I właśnie to te spostrzeżenia prowadzą nas do przeprowadzenia refaktoryzacji do wzorców projektowych we właściwym czasie – nie za wcześnie i nie za późno.

Plan szkolenia
Warsztat polega głównie na pracy z kodem przy wsparciu automatycznych refaktoryzacji wbudowanych w środowisko programistyczne IntelliJ od JetBrains. Kod źródłowy napisany jest w języku Java. Trener wykonuje wszystkie refaktoryzacje na żywo w małych krokach, co pozwala uczestnikom praktykować te same transformacje na swoich laptopach.
Pozostałe 25% szkolenia jest poświęcone części inspiracyjno – motywacyjnej, co pozwala szukać usprawnień jak sprawić, by porządkowanie zastanego kodu legacy stało się codziennym nawykiem i częścią procesu tworzenia oprogramownia. To z kolei umożliwi utrzymanie długu technicznego pod kontrolą.
Jest to szkolenie głównie na temat refaktoryzacji do czystego kodu i wzorców – oraz o architekturze kodu właściwej na dany moment dla obecnych wymagań. Różne zespoły mogą preferować różną architekturę, a celem tego szkolenia jest pokazanie, jak łatwo możemy zmieniać architekturę kodu do nowych wymagań biznesowych.

Dzień 1 – zawartość szkolenia Refaktoryzacja do Czystego Kodu

Czyszczenie kodu małymi krokami

  • Przegląd projektu do pracy nad poprawą jakości
  • Wymówka : To tylko jeszcze jeden if…
  • Przegląd zautomatyzowanych refaktoryzacji w IntellIJ
  • Refaktoryzacja na żywo w małych krokach
  • Nawyki efektywności osobistej wpływające na jakość kodu
  • Czysty Kod a Piramida Refaktoryzacji
  • Zasady SOLID a Piramida Refaktoryzacji

Czysty kod jako sposób na rozszerzalność i testowalność

  • Przegląd “rozszerzonego” projektu do pracy nad poprawą jakości
  • Nowe Wymagania + Brak Konserwacji = (Bardziej) “Brudny” Kod
  • Nadchodzą kolejne wymagania biznesowe
  • Refaktoryzacja w kierunku uzyskania punktów rozszerzenia
  • Czysty Kod to kod rozszerzalny
  • Nawyki efektywności zespołu wpływające na jakość kodu
  • Implementacja dodatkowej funkjonalności z użycien TDD

Główne zagadnienia na pozostałe dni

  • praktyka refaktoryzacji do wzorców projektowych
  • powiązanie wpływu procesu tworzenia oprogramowania na jakość kodu
Dzień 2
Refaktoryzacje kodu legacy zakończone implementacją poniższych wzorców
  • Interpreter
  • Chain of Responsibility
  • Fluent Builder
  • Iterator
  • State
Dzień 3
Refaktoryzacje kodu legacy zakończone implementacją poniższych wzorców
  • Template
  • Bridge
  • Composite
  • Factory Method
  • Abstract Factory
  • Adapter
Długość szkolenia
Szkolenie jest bardzo intensywne i na podstawie doświadczeń (tj. przeprowadzenia go kilkadziesiąt razy) proponowane podejście do 3 dni po 8 godzin.
Docelowi 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.