Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Refactoring er enkelt sagt "ordning av kode". Dette innebærer å endre den interne virkemåten for en metode, klasse eller et helt prosjekt uten å endre oppførselen til koden. Det finnes flere grunner for å refactore, men et par vanlige eksempler er (1) man ønsker å gjøre koden lettere å lese eller (2) at man ønsker å forbedre ytelsen.

Generell refactoring av kode

Et (overdrevet) dårlig eksempel kan ses nedenfor til venstre. Her er det først og fremst formateringen (innrykk og parenteser) og dårlig navngiving som står frem. Selv om personen som har skrevet koden vet at den fungerer vil det bli dårlig stemning dersom noen andre skal ta over, og forstå hva som skjer! Kodeblokken til høyre er derfor bedre, selv om de gjør akkurat det samme.

Code Block
themeEclipse
languagejava
public static int fubar(int[] asd) {
int foo = 0;	
for (int i = 0; i < ads.length; i++) {
if (asd[i] > asd[foo]) {foo = i;}
}
return asd[foo]; 
}
Code Block
themeEclipse
languagejava
// Metode som finner det største tallet i en liste med heltall
public static int getMax(int[] list) {

 
	// Før vi starter er det største tallet vi har funnet
	// det første tallet i listen
	int maxFound = list[0];
	
	// Bla gjennom listen...
	for (int i = 1; i < list.length; i++) {
		
		// ... dersom elementet på plass i er større enn det
		// største så langt, ta vare på det til senere 
		if (list[i] > maxFound) {
			maxFound = list[i];
		}
	}
	
	// Returner det største tallet vi fant
	return maxFound;
}

I koden til høyre er det flere elementer som gjør den "bedre":

  • Det er brukt fornuftige navn på metoder og variabler
  • Koden er pent formatert med innrykk
  • Kommentarer i koden forteller hva som skjer
  • Man er konsekvent med plassering av { og }
  • I blokken til venstre tar man vare på indeksen til det største elementet, og returnerer så elementet i lista på den plasseringen. Dette kan løses bedre ved å ta vare på det største tallet direkte, og så returnere dette.

Refactoring i Eclipse

Videre lesing

På hjemmesidene til Eclipse finner du mer om refactoring, blant annet en mer utdypende forklaring av alt du kan gjøre.