Swift:
Refaktorering
Hvordan:
La oss starte med et grunnleggende Swift-eksempel hvor vi har noe repetitiv kode:
func printUserDetails(firstName: String, lastName: String, age: Int) {
print("Fornavn: \(firstName)")
print("Etternavn: \(lastName)")
print("Alder: \(age)")
}
func printUserJob(title: String, company: String) {
print("Jobbtittel: \(title)")
print("Selskap: \(company)")
}
Å refaktorisere dette ville inkludere å lage en User
struktur for å innkapsle brukerattributter og legge til en metode for å skrive ut detaljer:
struct User {
let firstName: String
let lastName: String
let age: Int
let jobTitle: String
let company: String
func printDetails() {
print("Fornavn: \(firstName)")
print("Etternavn: \(lastName)")
print("Alder: \(age)")
print("Jobbtittel: \(jobTitle)")
print("Selskap: \(company)")
}
}
let user = User(firstName: "John", lastName: "Doe", age: 30, jobTitle: "Programvareutvikler", company: "Tech Solutions")
user.printDetails()
Eksempel på utskrift:
Fornavn: John
Etternavn: Doe
Alder: 30
Jobbtittel: Programvareutvikler
Selskap: Tech Solutions
Dypdykk
Refaktorisering har røtter som strekker seg tilbake til programvareteknikkens tidlige dager, men begrepet ble popularisert på slutten av 1990-tallet, spesielt gjennom Martin Fowlers banebrytende bok “Refactoring: Improving the Design of Existing Code”. Boken la frem prinsippet om at kode kontinuerlig skal ryddes opp i små skritt i stedet for å vente på en separat fase.
Alternativer til manuell refaktorisering inkluderer automatiserte verktøy og IDE-er (Integrerte Utviklingsmiljøer) som kan bidra til å oppdage duplisert kode, foreslå forenklinger, og automatisk generere deler av koden. Xcode, for Swift-utvikling, tilbyr ulike refaktoriseringsverktøy, som navneendring og funksjonsuttrekksfunksjonalitet, som kan redusere potensialet for menneskelige feil i prosessen.
Når du implementerer refaktorisering, er det viktig å ha et solid testsuite på plass. Tester fungerer som et sikkerhetsnett, og sikrer at endringene du gjør ikke introduserer feil. Dette er viktig siden hovedmålet med refaktorisering er å endre den interne strukturen uten å påvirke den eksterne oppførselen.