Swift:
Refactoring
Wie geht das:
Beginnen wir mit einem einfachen Swift-Beispiel, in dem wir etwas wiederholenden Code haben:
func printUserDetails(firstName: String, lastName: String, age: Int) {
print("Vorname: \(firstName)")
print("Nachname: \(lastName)")
print("Alter: \(age)")
}
func printUserJob(title: String, company: String) {
print("Jobtitel: \(title)")
print("Firma: \(company)")
}
Ein Refactoring hierfür würde beinhalten, eine User
-Struktur zu erstellen, um Benutzerattribute zu kapseln und eine Methode zum Ausdrucken der Details hinzuzufügen:
struct User {
let firstName: String
let lastName: String
let age: Int
let jobTitle: String
let company: String
func printDetails() {
print("Vorname: \(firstName)")
print("Nachname: \(lastName)")
print("Alter: \(age)")
print("Jobtitel: \(jobTitle)")
print("Firma: \(company)")
}
}
let user = User(firstName: "John", lastName: "Doe", age: 30, jobTitle: "Softwareentwickler", company: "Tech Solutions")
user.printDetails()
Beispiel-Ausgabe:
Vorname: John
Nachname: Doe
Alter: 30
Jobtitel: Softwareentwickler
Firma: Tech Solutions
Vertiefung
Refactoring hat Wurzeln, die bis in die frühen Tage der Softwaretechnik zurückgehen, aber der Begriff wurde Ende der 1990er Jahre popularisiert, insbesondere durch Martin Fowlers bahnbrechendes Buch “Refactoring: Improving the Design of Existing Code”. Das Buch legte das Prinzip dar, dass Code kontinuierlich in kleinen Schritten aufgeräumt werden sollte, anstatt auf eine separate Phase zu warten.
Alternativen zum manuellen Refactoring umfassen automatisierte Tools und IDEs (Integrierte Entwicklungsumgebungen), die beim Erkennen von doppeltem Code helfen, Vereinfachungen vorschlagen und Teile des Codes automatisch generieren können. Xcode, für Swift-Entwicklung, bietet verschiedene Refactoring-Tools, wie die Umbenennen- und Methode-extrahieren-Funktionalität, die das Potenzial für menschliche Fehler im Prozess reduzieren können.
Beim Implementieren von Refactoring ist es wichtig, eine solide Testsuite zu haben. Tests dienen als Sicherheitsnetz und stellen sicher, dass die Änderungen, die Sie vornehmen, keine Fehler einführen. Dies ist entscheidend, da das Hauptziel des Refactoring darin besteht, die interne Struktur zu ändern, ohne das externe Verhalten zu beeinflussen.