Trwają zapisy do grupy

Szkolenie: Refaktoryzacja Legacy Code - warsztat praktyczny

Szkolenie Refaktoryzacja Legacy Code to praktyczny warsztat dla programistów, uczący skutecznych technik refaktoryzacji, eliminacji code smells, zarządzania długiem technicznym, wdrażania wzorców projektowych oraz stosowania zasad SOLID i Clean Code w pracy z istniejącym kodem

  • Trenerzy praktycy
  • Kameralne grupy

Czas trwania szkolenia:3 dni (24h)

Poziom zaawansowania:

Kod kursu:REFACTORING/LEGACY

legacy-codemodernizacja-aplikacjiutrzymanie-systemowrefaktoryzacja-legacy

Dostępne terminy szkolenia

  • Termin
  • Trener
  • Cena
  • Zapis
  • Lokalizacja

Termin:

13 kwietnia
Trwają zapisy na szkolenie

Trener:

Łukasz Andrzejewski

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:

24 czerwca
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:

23 września
Trwają zapisy na szkolenie

Trener:

Łukasz Andrzejewski

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:

16 grudnia
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

  • Szkolenie przygotowuje do samodzielnego rozpoznawania i eliminowania code smells oraz zarządzania długiem technicznym w projektach programistycznych

  • Szkolenie uczy stosowania sprawdzonych technik refaktoryzacji i wzorców projektowych w celu poprawy jakości i elastyczności kodu legacy

  • Szkolenie pokazuje, jak wdrażać testy automatyczne i strategie testowania, umożliwiające bezpieczną refaktoryzację kodu niepokrytego testami

  • Szkolenie omawia zasady SOLID, Clean Code i czystej architektury, przygotowując do projektowania systemów o wysokiej spójności i niskim sprzężeniu

  • Szkolenie rozwija kompetencje w zakresie dokumentowania zmian, pracy zespołowej oraz podejmowania decyzji o refaktoryzacji lub przepisaniu systemu


Dla kogo?

  • Programiści pracujący z istniejącymi systemami i dużymi bazami kodu, posiadający praktyczną znajomość programowania obiektowego

  • Architekci oprogramowania, team leaderzy i technical leaderzy odpowiedzialni za jakość i rozwój projektów IT

  • Osoby wdrażające praktyki Clean Code oraz zespoły rozwijające i utrzymujące systemy legacy


Efekty kształcenia

  • Uczestnik analizuje i identyfikuje code smells w kodzie legacy

  • Uczestnik planuje i wdraża proces refaktoryzacji z użyciem testów automatycznych

  • Uczestnik stosuje wzorce projektowe w celu poprawy architektury systemu

  • Uczestnik dokumentuje zmiany i zarządza długiem technicznym

  • Uczestnik współpracuje w zespole podczas refaktoryzacji kodu

  • Uczestnik ocenia ryzyko i podejmuje decyzje dotyczące 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

27.02.2026

Uczestnik szkoleniaAutomatyzacja testów funkcjonalnych aplikacji internetowych z użyciem Playwright/TypeScript

Hanna Yuzefavich, Capgemini Polska Sp. z o.o.

Przystępne wyjaśnienie nawet bardziej złożonych zagadnień, dzięki czemu całość była zrozumiała niezależnie od poziomu wyjściowego. Dużo praktyki - na każdym etapie pojawiało się zadanie, które pozwalało od razu utrwalać wiedzę. Doświadczenie prowadzącego: nie tylko świetnie zna narzędzia, ale też potrafi przekazać wiedzę w uporządkowany i angażujący sposób, dzieląc się realnymi przypadkami z projektów. Od razu po szkoleniu mogłam od razu przenieść wiele rozwiązań i dobrych praktyk do własnych projektów

Więcej opinii