Trwają zapisy do grupy

Szkolenie: Refaktoryzacja Legacy Code - warsztat praktyczny

Szkolenie "Refaktoryzacja Legacy Code - warsztat praktyczny" to intensywny kurs, który stanowi praktyczne wprowadzenie do technik bezpiecznej refaktoryzacji istniejącego kodu. Uczestnicy nauczą się, jak systematycznie poprawiać jakość kodu bez zmiany jego funkcjonalności, eliminować code smells, zarządzać długiem technicznym oraz stosować sprawdzone wzorce refaktoryzacji.

  • Trenerzy praktycy
  • Kameralne grupy

Czas trwania szkolenia:3 dni (24h)

Poziom zaawansowania:

Kod kursu:REFACTORING/LEGACY

clean-codeoopgofsolid

Dostępne terminy szkolenia

  • Termin
  • Trener
  • Cena
  • Zapis
  • Lokalizacja

Termin:

27 października
Trwają zapisy na szkolenieDostępne w BUR

Trener:

Trener-Sages

Cena:

2550 PLN netto
Ikona podpowiedziDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Ikona podpowiedziZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Termin:

7 stycznia
Trwają zapisy na szkolenieDostępne w BUR

Trener:

Trener-Sages

Cena:

2550 PLN netto
Ikona podpowiedziDowiedz się więcej o cenach szkoleń - zapraszamy do kontaktu
+23% VAT

Lokalizacja:

Zdalne
Zdalne
Ikona podpowiedziZapytaj o inne lokalizacje - w tym celu skorzystaj z chatu

Forma szkolenia

Interesuje Cię szkolenie stacjonarne?

Powiadom o kolejnych terminach

Interesuje Cię szkolenie w innym terminie?

Refaktoryzacja Legacy Code - warsztat praktyczny

Cele szkolenia

  • Zdobycie praktycznych umiejętności identyfikacji i eliminacji code smells w kodzie legacy, z wykorzystaniem narzędzi analizy statycznej i zasad Clean Code

  • Opanowanie katalogu klasycznych refaktoryzacji kodu (m.in. Extract Method, Move Method, Replace Conditional with Polymorphism) i umiejętność ich stosowania w projektach komercyjnych

  • Zrozumienie zasad bezpiecznej refaktoryzacji z wykorzystaniem testów automatycznych oraz praktycznych strategii testowania kodu (unit, integration, characterization tests)

  • Poznanie technik pracy z kodem niepokrytym testami, w tym tworzenie Characterization Tests i identyfikacja Seams, które umożliwiają skuteczną refaktoryzację bez ryzyka

  • Umiejętność stosowania zasad SOLID, Clean Code i czystej architektury w procesie refaktoryzacji, by projektować systemy o wysokiej spójności i niskim sprzężeniu

  • Praktyczne doświadczenie w przekształcaniu kodu do wzorców projektowych (Strategy, Factory, Composite, Observer, Decorator), zwiększających elastyczność i rozszerzalność systemów

  • Rozwinięcie kompetencji w zakresie zarządzania długiem technicznym, dokumentowania zmian i podejmowania decyzji o refaktoryzacji vs. przepisaniu systemu


Dla kogo?

  • Szkolenie dedykowane jest programistom wszystkich poziomów zaawansowania, architektom oprogramowania, team leadom oraz technical leadom, którzy chcą zdobyć lub usystematyzować wiedzę z zakresu refaktoryzacji

  • Szczególnie polecane osobom pracującym z istniejącymi systemami, dużymi bazami kodu oraz zespołom wdrażającym praktyki Clean Code i zwinne metody rozwoju oprogramowania


Zalety

  • Skoncentrowanie na praktyce – szkolenie prowadzone w formule intensywnego warsztatu programistycznego, opartego na autentycznych przykładach kodu legacy z projektów produkcyjnych

  • Katalog konkretnych refaktoryzacji – uczestnicy otrzymują zestaw gotowych do zastosowania technik, które pozwalają systematycznie poprawiać jakość kodu i redukować dług techniczny

  • Wysoka wartość merytoryczna – treści oparte na sprawdzonych źródłach, m.in. książkach M. Fowlera („Refactoring”) i J. Kerievsky’ego („Refactoring to Patterns”), połączone z doświadczeniem praktyków

  • Ekspercka kadra szkoleniowa – zajęcia prowadzone przez doświadczonych programistów i architektów oprogramowania z wieloletnim doświadczeniem w refaktoryzacji systemów legacy

  • Umiejętności produkcyjne – po szkoleniu uczestnicy będą potrafili samodzielnie planować i realizować proces refaktoryzacji w rzeczywistych środowiskach projektowych

  • Praktyczne case studies – ćwiczenia oparte na realnych przypadkach „trudnego” kodu, pokazujące, jak stosować wzorce projektowe, zasady SOLID i dobre praktyki refaktoryzacji w codziennej pracy

  • Kompleksowe podejście do problemu – szkolenie obejmuje zarówno aspekty techniczne (testy, narzędzia IDE, analiza kodu), jak i organizacyjne (code review, dokumentacja, zarządzanie ryzykiem refaktoryzacji)


Wymagania

  • Praktyczna znajomość programowania obiektowego w co najmniej jednym języku (Java, C#, Python, JavaScript/TypeScript lub podobne)

  • Podstawowa znajomość testów jednostkowych i frameworków testowych (JUnit, NUnit, pytest, Jest lub podobne)

  • Umiejętność czytania i rozumienia cudzego kodu

  • Podstawowa wiedza o wzorcach projektowych będzie atutem, ale nie jest wymagana


W cenie otrzymasz:

  • Materiały szkoleniowe

  • Certyfikat ukończenia szkolenia

  • W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki

Program szkolenia

Pobierz program w PDF

Wprowadzenie do pracy z kodem legacy

  • Definicja i charakterystyka kodu legacy

  • Ryzyka i koszty utrzymania systemów legacy

  • Dług techniczny – identyfikacja, pomiar i zarządzanie

  • Code smells – rozpoznawanie symptomów niskiej jakości kodu

  • Metryki jakości kodu (złożoność cyklomatyczna, pokrycie testami, duplikacje)

  • Najczęstsze przyczyny powstawania kodu niskiej jakości

  • Kryteria decyzji: refaktoryzacja czy przepisanie systemu

Fundamenty refaktoryzacji

  • Istota i cele refaktoryzacji

  • Zasady bezpiecznej refaktoryzacji

  • Znaczenie testów w procesie refaktoryzacji

  • Piramida testów i strategie testowania

  • Wzorce Test Doubles (Mock, Stub, Spy, Fake)

  • Code coverage – zalety, ograniczenia i ryzyka nadużyć

  • Characterization tests – testowanie kodu bez istniejących testów

  • Techniki pracy z kodem legacy (Seams, Dependency Breaking)

Zasady dobrego projektowania

  • Kluczowe zasady: DRY, KISS, YAGNI

  • Zasady SOLID w praktyce

  • Projektowanie o wysokiej spójności i niskim sprzężeniu

  • Czysta architektura – założenia i popularne podejścia

  • Wzorce projektowe jako kierunek refaktoryzacji

Podstawowe refaktoryzacje – warsztat praktyczny

  • Extract Method

  • Extract Variable / Constant

  • Inline Method / Variable

  • Rename

  • Move Method / Field

  • Extract Class

  • Encapsulate Field

  • Encapsulate Collection

  • Encapsulate Conditional

  • Replace Magic Numbers with Named Constants

Refaktoryzacje hierarchii klas – warsztat praktyczny

  • Pull Up Method / Field – przeniesienie wspólnych metod/pól do klasy bazowej

  • Push Down Method / Field – przeniesienie metod/pól do konkretnych podklas

  • Extract Superclass – wyodrębnienie wspólnej klasy bazowej z podobnych klas

  • Extract Subclass – utworzenie podklasy dla specyficznego zachowania

  • Extract Interface – wyodrębnienie interfejsu definiującego kontrakt

  • Collapse Hierarchy – scalenie zbędnej klasy z rodzicem/potomkiem

  • Replace Inheritance with Composition – zamiana dziedziczenia na kompozycję

Refaktoryzacje do wzorców projektowych – warsztat praktyczny

  • Replace Conditional Logic with Strategy – enkapsulacja algorytmów w osobnych klasach

  • Replace Conditional with Polymorphism – zamiana switch/if na polimorfizm

  • Replace Type Code with Class – zastąpienie kodów typami

  • Encapsulate Composite with Builder – użycie Buildera do tworzenia struktur złożonych

  • Encapsulate Classes with Factory / Extract Factory Class – centralizacja tworzenia obiektów w fabryce

  • Move Embellishment to Decorator – przeniesienie dodatkowej funkcjonalności do dekoratorów

  • Replace State-Altering Conditionals with State – zamiana warunków na wzorzec State

  • Replace Hard-coded Notifications with Observer – zastąpienie bezpośrednich powiadomień wzorcem Observer

  • Replace Implicit Tree with Composite – zastąpienie ukrytej struktury drzewa wzorcem Composite

  • Unify Interfaces with Adapter – ujednolicenie niekompatybilnych interfejsów adapterem

  • Replace Conditional Dispatcher with Command – zamiana rozgałęzień na wzorzec Command

  • Apply Template Method – wyodrębnienie szkieletu algorytmu do metody szablonowej

  • Replace Distinctions with Composite – ujednolicenie różnych typów przez Composite

  • Limit Instantiation with Singleton – ograniczenie tworzenia instancji do jednej

  • Move Accumulation to Collecting Parameter / Visitor – przeniesienie agregacji do parametru zbierającego lub Visitora

  • Extract Composite – wyodrębnienie elastycznej struktury obiektowej

Zaawansowane refaktoryzacje – warsztat praktyczny

  • Break Dependencies – rozerwanie zależności między komponentami

  • Extract Method Object – wyodrębnienie metody do osobnej klasy

  • Break Responsibilities – podział nadmiernych odpowiedzialności klasy

  • Remove Duplication – usunięcie duplikacji kodu

  • Break Method – podział zbyt długiej metody na mniejsze

  • Introduce Parameter Object – grupowanie parametrów w obiekt

  • Remove Arrowhead Antipattern – spłaszczenie zagnieżdżonych instrukcji warunkowych

  • Introduce Design by Contract Checks – dodanie warunków wstępnych/końcowych

  • Remove Double Negative – usunięcie podwójnych zaprzeczeń

  • Remove God Classes – rozbicie klas z nadmiernymi odpowiedzialnościami

  • Remove Boolean Method Parameters – zamiana flag boolean na wyraźne metody

  • Remove Middle Man – usunięcie zbędnego pośrednika w delegacji

  • Return ASAP – natychmiastowy zwrot wartości bez zbędnych zmiennych tymczasowych

Strategie i dobre praktyki

  • Stopniowa refaktoryzacja kontra przepisanie systemu

  • Zasada Boy Scout – pozostawianie kodu w lepszym stanie niż zastany

  • Praca zespołowa w refaktoryzacji – komunikacja i code review

  • Dokumentowanie zmian w procesie refaktoryzacji

  • Narzędzia wspierające refaktoryzację (IDE, analiza statyczna, linters)

  • Zarządzanie ryzykiem w procesie refaktoryzacji

Autorem szkolenia jest Łukasz Andrzejewski

Od ponad 17 lat z pasją dzielę się wiedzą jako trener, wspierając rozwój kompetencji technologicznych wśród specjalistów IT na różnych etapach ich kariery. W ostatnich 5 latach przeszkoliłem ponad 2000 osób, prowadząc szkolenia zarówno otwarte, jak i dedykowane, dla czołowych firm z sektorów bankowości, ubezpieczeń i IT – m.in. Santander Bank Polska, ERGO Hestia, Asseco Poland oraz Orange. Specjalizuję się w szerokim zakresie technologii – od rozwiązań z ekosystemu Java, przez nowoczesny frontend,…

Wybrane opinie

Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

4.8
Ikona podpowiedziŚrednia ocen Sages w serwisie Google Ocena pochodzi ze średniej ocen Sages w serwisie Google i nie jest weryfikowana

10.10.2025

Uczestnik szkoleniaPython zaawansowany

Dominik Chlipalski, Aptiv Services Poland S.A.

trener ciekawie opowiada, zadania pomiedzy teoria

Więcej opinii