Refaktoryzacja
description
Transcript of Refaktoryzacja
RefaktoryzacjaRobert Pająk
Plan•Wprowadzenie•Demo•Podsumowanie, czyli trochę teorii
DefinicjaRefaktoryzacja - 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