Refaktoryzacja
description
Transcript of Refaktoryzacja
![Page 1: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/1.jpg)
RefaktoryzacjaRobert Pająk
![Page 2: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/2.jpg)
Plan
•Wprowadzenie•Demo•Podsumowanie, czyli trochę teorii
![Page 3: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/3.jpg)
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
![Page 4: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/4.jpg)
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
![Page 5: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/5.jpg)
DEMOCase: Wypożyczalnia filmów
![Page 6: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/6.jpg)
Case: Wypożyczalnia filmów (1/2)Przed zmianą
Po ekstrakcji metod
![Page 7: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/7.jpg)
Case: Wypożyczalnia filmów (2/2)Przed zmianą
Po dodaniu funkcjonalności
![Page 8: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/8.jpg)
Dlaczego refaktoryzacja jest ważna
•Ulepszenie projektu•Poprawa czytelność•Identyfikacja błędów•Przyspieszenie programowania•Ułatwia wprowadzanie kolejnych zmian
![Page 9: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/9.jpg)
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
![Page 10: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/10.jpg)
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
![Page 11: Refaktoryzacja](https://reader036.fdocuments.net/reader036/viewer/2022082715/56815766550346895dc50a11/html5/thumbnails/11.jpg)
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