RefaktoryzacjaRobert Pająk
Plan
•Wprowadzenie•Demo•Podsumowanie, czyli trochę teorii
Definicja
Refaktoryzacja - zmiana wewnętrznej struktury oprogramowania, sprawiająca, że kod staje się łatwiejszy do zrozumienia i tańszy w utrzymaniu. Zmiana ta nie wpływa na obserwowalne zachowanie programu.
Refaktoryzacja to sprzątanie
Czym powinna być refaktoryzacja•Ta sama funkcjonalność•Lepsza struktura
Ryzyka (przy złej refaktoryzacji):•Wprowadzenie trudno wykrywalnych
błędów•Można się zapędzić i utknąć w czarnej
dziurze•Strata czasu
DEMOCase: Wypożyczalnia filmów
Case: Wypożyczalnia filmów (1/2)Przed zmianą
Po ekstrakcji metod
Case: Wypożyczalnia filmów (2/2)Przed zmianą
Po dodaniu funkcjonalności
Dlaczego refaktoryzacja jest ważna
•Ulepszenie projektu•Poprawa czytelność•Identyfikacja błędów•Przyspieszenie programowania•Ułatwia wprowadzanie kolejnych zmian
Jak refaktoryzować
•Metafora 2 kapeluszy
•Solidny pakiet samosprawdzalnych testów•Krokowo (testowanie -> mała zmiana)
•Zgodnie z zasadami OOAD (np. SOLID)•Wykorzystanie wzorców projektowych•„Czyszczenie” kodu
Kiedy refaktoryzować
•Zasada do trzech razy sztuka•Przed dodaniem nowej funkcjonalności•Po wykryciu błędu•Podczas inspekcji kodu (ang. code review)
•Projektowanie a Refaktoryzacja•Wydajność a Refaktoryzacja
Literatura• http://martinfowler.com/refactoring/• „Refaktoryzacja. Ulepszanie struktury istniejącego
kodu”, Martin Fowler, Kent Beck…• „Kod doskonały. Jak tworzyć oprogramowanie
pozbawione błędów. Wydanie II”, Steve McConnell• „Czysty kod. Podręcznik dobrego programisty”, Robert
C. Martin
• „Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku”, GoF
• „UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III”, Craig Larman
Top Related