Refaktoryzacja

12
Refaktoryzacja Robert Pająk

description

Refaktoryzacja. Robert Pająk. Plan. Wprowadzenie Demo Podsumowanie, czyli trochę teorii. Definicja. - PowerPoint PPT Presentation

Transcript of Refaktoryzacja

Page 1: Refaktoryzacja

RefaktoryzacjaRobert Pająk

Page 2: Refaktoryzacja

Plan

•Wprowadzenie•Demo•Podsumowanie, czyli trochę teorii

Page 3: Refaktoryzacja

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

Pellared
Page 4: Refaktoryzacja

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

DEMOCase: Wypożyczalnia filmów

Page 6: Refaktoryzacja

Case: Wypożyczalnia filmów (1/2)Przed zmianą

Po ekstrakcji metod

Page 7: Refaktoryzacja

Case: Wypożyczalnia filmów (2/2)Przed zmianą

Po dodaniu funkcjonalności

Page 8: Refaktoryzacja

Dlaczego refaktoryzacja jest ważna

•Ulepszenie projektu•Poprawa czytelność•Identyfikacja błędów•Przyspieszenie programowania•Ułatwia wprowadzanie kolejnych zmian

Page 9: Refaktoryzacja

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

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

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