Szkolenie Legacy Code
Przywrócisz do życia stary kod, zmieniając go bezpiecznie i małymi krokami, bez przepisywania od zera.
Zapytaj o termin Pobierz program (PDF)Kod, którego nikt nie chce dotykać, zwykle zarabia pieniądze firmy. Przepisanie go od zera kusi, ale trwa miesiącami i przynosi nowe błędy. Skuteczniejsza droga to stopniowa naprawa: najpierw zabezpieczasz obecne zachowanie testami, potem porządkujesz kod krok po kroku, a każda zmiana może od razu trafić na produkcję.
Na szkoleniu pracujesz na naprawdę zagmatwanym kodzie JavaScript. Poznasz techniki z książki „Working Effectively with Legacy Code” Michaela Feathersa w wersji dla współczesnego frontendu i Node.js. Uzupełnieniem jest szkolenie Clean Code.
Program
2 dni
- Czym jest legacy code?
- Kod bez testów, kod bez właściciela
- Przepisać czy naprawiać: koszty i ryzyka
- Od czego zacząć?
- Hotspoty według Adama Tornhilla („Your Code as a Crime Scene”)
- Częstotliwość zmian z historii Gita a złożoność plików
git log,git blamei archeologia decyzji- Mapa zależności modułów
- Testy charakteryzujące
- Zapisanie obecnego zachowania, także błędnego
- Snapshoty, approval testing i golden master dla dużych wyjść
- Szkic testów charakteryzujących z asystentem AI i jego weryfikacja
- Szwy (seams)
- Wstrzykiwanie zależności w istniejący kod
- Izolowanie czasu, sieci, losowości i globalnego stanu
- Sprout i Wrap (metoda, klasa) dla nowych funkcji
- Bezpieczna refaktoryzacja
- Małe kroki pod ochroną testów
- Automatyczne refaktoryzacje w edytorze
- Zmiana równoległa (parallel change): rozszerz, zmigruj, zwiń
- Krótkie gałęzie i częste scalanie zamiast wielkiej przebudowy
- Wzorzec strangler fig (stopniowe zastępowanie)
- Wymiana modułów i ekranów po kawałku
- Feature flagi przy przełączaniu implementacji
- Migracja do TypeScript
- Migracja plik po pliku:
allowJs,checkJsi JSDoc - Start od
"strict": false, bo TypeScript 6 włączastrictdomyślnie
- Migracja plik po pliku:
- Node.js, zależności i martwy kod
- Node.js po końcu wsparcia (Node.js 20 od 2026-04-30, Node.js 22
od 2027-04-30), CommonJS do ESM z
require(esm)jako pomostem - Porzucone biblioteki i aktualizacje z Dependabotem lub Renovate
- Nieużywane pliki, eksporty i zależności (Knip), usuwanie bez strachu dzięki historii Gita
- Node.js po końcu wsparcia (Node.js 20 od 2026-04-30, Node.js 22
od 2027-04-30), CommonJS do ESM z
Szczegóły migracji do TypeScript 6 i 7 omawiam na szkoleniu TypeScript, a pracę z asystentami AI na szkoleniu AI dla programistów.
Dla kogo?
- Dla programistów, którzy utrzymują kilkuletni kod bez testów.
- Dla liderów technicznych, którzy planują modernizację projektu.
- Dla zespołów rozważających przepisanie aplikacji od zera.
Co musisz umieć?
- Swobodnie pisać kod w JavaScript.
- Pisać proste testy jednostkowe.
- Pracować z Gitem na co dzień.
- Korzystać z asystenta AI w edytorze (moduł o testach charakteryzujących).
Czego się nauczysz?
- Wskażesz na podstawie historii Gita miejsca, od których warto zacząć.
- Zabezpieczysz obecne zachowanie kodu testami charakteryzującymi.
- Wydzielisz zależność od czasu, sieci i globalnego stanu, żeby dało się napisać test.
- Wprowadzisz zmiany małymi krokami, bez długo żyjących gałęzi.
- Zastąpisz stary moduł nowym stopniowo, wzorcem strangler fig.
- Zaplanujesz migrację do TypeScript plik po pliku, bez zatrzymywania prac.
- Zaktualizujesz Node.js i zależności oraz usuniesz martwy kod.
- Wykorzystasz asystenta AI do szkiców testów charakteryzujących i sprawdzisz ich wynik.
Trener
Piotr Kowalski
W branży IT od 2008 roku. Od 2014 jest mentorem dla wielu developerów. Jako trener spędził na sali szkoleniowej kilka tysięcy godzin, a na LinkedIn ma 52 rekomendacje. Każde jego szkolenie to dawka solidnej wiedzy oraz humoru.
Zorganizujmy to szkolenie w Twoim zespole
Napisz, z czym pracujecie i na jakim poziomie jest grupa. Odpowiem z propozycją programu dopasowanego do Waszego projektu.
Zapytaj o szkolenie Pobierz program (PDF) Zobacz wszystkie szkolenia