120 likes | 245 Views
Refaktoryzacja. Robert Pająk. Plan. Wprowadzenie Demo Podsumowanie, czyli trochę teorii. Definicja.
E N D
Refaktoryzacja Robert 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
DEMO Case: 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. codereview) • 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
Pytania? robert.pajak@hotmail.com