3. #Plan Prezentacji
1. Legacy Code – co to właściwie jest
2. Częste problemy przy Legacy Code
3. Narzędzia wspomagające pracę
4. Od czego zacząć i jak postępować
4. #1. Legacy Code – co to właściwie jest
Czy każdy kod „po kimś”
to zawsze legacy code?
Co jest przyczyną
powstania takiego kodu ?
Rozwój czy Modyfikacja?
5. #2. Częste problemy przy Legacy Code
Dług techniczny do spłacenia !!!
Brak dokumentacji
Framework w starszej wersji
Naprawa = więcej błędów
6. #2. Częste problemy przy Legacy Code
Brak testów = brak wykrywania błędów wynikających z zależności
Nietestowalny kod
Zapomnij o SOLID i wzorcach projektowych (nawet „MVC”)
Brak zerwania zależności – kod jest często zagnieżdżony, grube kontrolery
Pseudo obiektowość
Nieprawidłowe statusy odpowiedzi
Brak Migracji
Niekonsekwencja nazewnictwa, brak PSR
Mnóstwo „śmieci” (nieużywane elementy kodu, za komentowane bloki )
7. #3. Narzędzia wspomagające pracę
IDE (efektywność pracy)
PHPUnit (testy)
Xdebug (debugowanie)
Tinker (sprwadzanie w locie)
Profiler (optymalizacja)
Diagramy UML (specyfikacja)
PHP CS Fixer (PSR)
Continous Integration & Deployment
(automatyzacja z pomocą np... Docker + Jenkins + Git)
8. #4. Od czego zacząc i jak postępować
Smoke tests na wszystkie endpointy
Zebranie najlepszej możliwej
specyfikacji (stare dokumenty,
rozmowy z klientem etc)
Mikado Method - oczekiwany cel
Testy pierwsze
Refaktoring (nie zawsze!!)
9. #4. Od czego zacząc i jak postępować
Mikado Method
10. #4. Od czego zacząc i jak postępować
Dokończenie projektu
1. Testy integracyjne na wprowadzane zmiany
2. Mała zmiana po raz pierwszy? = bez refaktoringu
3. Zmiana kolejny raz w tym samym kodzie? = projektowanie + refaktoring + testy
jednostkowe
4. Duża zmiana kodu? Zależności powodują błędy? = projektowanie + refaktoring +
testy jednostkowe