Przejdź do głównej zawartości

Refaktoryzacja kodu – dlaczego i kiedy

Refaktoryzacja kodu

Refaktoryzacja to proces poprawiania struktury kodu bez zmiany jego zewnętrznego zachowania. Celem jest uczynienie kodu bardziej czytelnym, łatwiejszym w utrzymaniu i rozszerzaniu. To nie naprawa błędów ani dodawanie funkcji - to “sprzatanie” kodu, które pozwala zespołowi pracowac efektywniej. Każdy profesjonalny programista musi rozumiec, kiedy i jak refaktoryzowac.

  • Utrzymanie kodu - Czysty kod jest łatwy do zrozumienia i modyfikacji
  • Redukcja błędów - Uproszczony kod ma mniej miejsc na błędy
  • Praca zespołowa - Inni programisci łatwiej zrozumieja Twoj kod
  • Profesjonalizm - Refaktoryzacja to codziennosc w pracy programisty
  1. Rozumiec czym jest refaktoryzacja i czym rozni się od przepisywania kodu
  2. Umiec wyjaśnić typowe “zapachy kodu” (code smells) wymagajace refaktoryzacji
  3. Potrafic pokazac przykład refaktoryzacji - kod przed i po
  4. Wiedzieć kiedy refaktoryzowac, a kiedy tego unikac
  1. Definicja refaktoryzacji

    • Co to jest refaktoryzacja
    • Czym rozni się od debugowania i dodawania funkcji
    • Zasada: zachowanie zewnętrznego działania
  2. Code smells (zapachy kodu)

    • Duplikacja kodu (DRY)
    • Długie funkcje
    • Zbyt wiele parametrow
    • Magiczne liczby i stringi
    • Martwy kod
  3. Techniki refaktoryzacji

    • Ekstrakcja funkcji
    • Zmiana nazw (rename)
    • Eliminacja duplikacji
    • Uproszczenie warunkow
  4. Kiedy refaktoryzowac

    • Przed dodaniem nowej funkcji
    • Po naprawieniu błędu
    • Podczas code review
    • Kiedy NIE refaktoryzowac

Przykład 1

Przed refaktoryzacja - kod z code smells

Przykład 2

Po refaktoryzacji - ten sam kod po poprawkach

Przykład 3

Ekstrakcja funkcji - wydzielenie fragmentu do osobnej funkcji

Przykład 4

Analiza różnic - co się zmieniło i dlaczego jest lepiej

  • Katalog refaktoryzacji Martina Fowlera
  • Refaktoryzacja z testami (TDD)
  • Wzorce projektowe jako cel refaktoryzacji
  • Narzedzia IDE do automatycznej refaktoryzacji
  • Techniki: Extract Method, Inline Variable, Replace Temp with Query
  • Legacy code i strategia “strangler fig”
  • Metryki kodu (cyklomatyczna złożoność)
  1. Wstep (0.5 strony) - dlaczego kod “gnije” i trzeba go poprawiac
  2. Definicja refaktoryzacji (1 strona) - czym jest, czym nie jest
  3. Code smells (1.5 strony) - typowe problemy z przykładami
  4. Techniki refaktoryzacji (1 strona) - jak poprawiac kod
  5. Przykład przed/po (1 strona) - konkretny przypadek z analiza
  6. Kiedy refaktoryzowac (0.5 strony) - dobre praktyki
  7. Podsumowanie (0.5 strony)
  8. Bibliografia
  1. Czy refaktoryzacja zmienia funkcjonalnosc programu?
  2. Co oznacza zasada DRY i jak się łączy z refaktoryzacja?
  3. Podaj trzy przykłady “code smells”.
  4. Kiedy NIE powinno się refaktoryzowac?
  5. Co to jest ekstrakcja funkcji (Extract Method)?
  6. Dlaczego refaktoryzacja wymaga dobrych testow?

To więcej niz praca zaliczeniowa

Opracowanie tego tematu to szansa, by naprawde zrozumiec jak pisac i utrzymywac wysokiej jakosci kod. Refaktoryzacja to codziennosc każdego profesjonalnego programisty.

Wykorzystaj lekcje - konsultuj watpliwosci, pokazuj postepy! Pracuj iteracyjnie - outline -> draft -> przykłady kodu -> analiza -> redakcja