Vad är refaktorisering?

Refaktorisering betyder att man förbättrar strukturen på sin kod – utan att ändra vad programmet gör.
Det handlar om att:

  • Göra koden lättare att läsa
  • Göra den enklare att underhålla och bygga vidare på
  • Minska risken för fel

Exempel på när man refaktorerar

Före – kod med dåliga namn, upprepning och dålig struktur:

x = 10
y = 15
z = x * y
print("Area:", z)

Efter – bättre namn och funktion:

def beräkna_area(bredd, höjd):
    return bredd * höjd

area = beräkna_area(10, 15)
print("Area:", area)

Koden gör samma sak, men är nu:

  • Mer tydlig
  • Lätt att återanvända
  • Möjlig att testa separat

Vad kan man refaktorisera?

ProblemBättre lösning
För långa funktionerDela upp i mindre funktioner
Upprepade kodraderFlytta till en gemensam funktion
Dåliga namnAnvänd tydliga och beskrivande namn
För mycket kod i mainFlytta till funktioner eller klasser
Liknande objektstrukturerAnvänd klasser med arv eller sammansättning

Vad är återanvändbar kod?

Det är kod som är:

Modulär – delas upp i funktioner och klasser
Allmängiltig – gör inte något som bara funkar i ett enda specialfall
Väl namngiven – så andra (eller du själv) förstår vad den gör
Lätt att testa – varje del går att prova för sig

Exempel: Gör om upprepad kod till funktion

Innan:

print("Hej Anna")
print("Hej Erik")
print("Hej Samira")

Efter:

def säg_hej(namn):
    print("Hej", namn)

säg_hej("Anna")
säg_hej("Erik")
säg_hej("Samira")

Nu kan du använda samma funktion överallt – lätt att ändra, lätt att återanvända.

Sammanfattning

BegreppVad det betyder
RefaktoriseringGöra om kodens struktur utan att ändra vad den gör
Återanvändbar kodKod som går att använda flera gånger i olika projekt
Bra namnGör kod mer förståelig för andra
Funktioner & klasserHjälper till att dela upp och återanvända logik