Clean Code auf Swift: Prinzipien und Beispiele für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Clean Code auf Swift: Prinzipien und Beispiele für Anfänger



Jeder iOS- oder macOS-Entwickler stößt früher oder später auf ein Problem: Code, der gestern noch einwandfrei funktioniert hat, wird heute unlesbar. Das ist nicht die Schuld der Sprache Swift – es ist das Ergebnis der Vernachlässigung der Clean Code-Prinzipien. Sauberer Code ist nicht nur eine Frage der Ästhetik. Er ist die Grundlage für die Wartbarkeit eines Projekts, die Reduzierung der Debugging-Zeit und eine angenehme Teamarbeit. In diesem Artikel werden wir die wichtigsten Clean Code Prinzipien anhand von Swift-Beispielen erläutern, die Ihnen helfen, Code zu schreiben, der nicht nur für den Computer, sondern auch für Menschen verständlich ist.



1. Benennung: Variablen, Konstanten und Funktionen



Das erste und wichtigste Prinzip: Der Name sollte die Frage „Warum?“ beantworten, nicht „Wie?“. In Swift können Sie dank der strengen Typisierung den Typ im Namen weglassen, aber nicht die Absicht.



Schlechtes Beispiel:

var d: Double = 3.14var arr = [String]()func calc(a: Double, b: Double) -> Double {    return a * b}


Gutes Beispiel (Clean Code):

let piValue: Double = 3.14159var userNames: [String] = []func calculateRectangleArea(width: Double, height: Double) -> Double {    return width * height}


Benennungsregeln in Swift:

  • Verwenden Sie camelCase für Variablen und Funktionen.
  • Vermeiden Sie Abkürzungen ( btn → submitButton ).
  • Verwenden Sie für boolesche Variablen die Präfixe is, has, should (z.B. isUserLoggedIn).
  • Funktionsnamen sollten mit einem Verb beginnen: fetchData(), saveToCache().


2. Funktionen: Eine Aufgabe – eine Funktion



Das Prinzip der einzigen Verantwortung (Single Responsibility) gilt nicht nur für Klassen, sondern auch für Funktionen. Wenn eine Funktion mehr als eine Sache erledigt, sollte sie aufgeteilt werden.



Schlechtes Beispiel: Die Funktion macht alles auf einmal

func processUserData(user: User) {    // Validierung    guard user.email.contains("@") else { return }    // Speichern in der Datenbank    Database.shared.save(user)    // Senden einer Benachrichtigung    NotificationCenter.default.post(name: .userDidRegister, object: nil)    // UI aktualisieren    DispatchQueue.main.async {        self.label.text = "Willkommen, \\(user.name)"    }}


Gutes Beispiel: Aufteilung in kleine Funktionen

func registerUser(_ user: User) {    guard validateUser(user) else { return }    saveUserToDatabase(user)    postRegistrationNotification()    updateUI(for: user)}

private func validateUser(_ user: User) -> Bool { return user.email.contains("@") && !user.name.isEmpty}

private func saveUserToDatabase(_ user: User) { Database.shared.save(user)}

private func postRegistrationNotification() { NotificationCenter.default.post(name: .userDidRegister, object: nil)}

private func updateUI(for user: User) { DispatchQueue.main.async { self.welcomeLabel.text = "Willkommen, \\(user.name)" }}


Tipp: Wenn Sie keinen kurzen Namen für eine Funktion finden, macht sie wahrscheinlich zu viel.



3. Kommentare: Weniger ist besser, aber treffend



In Clean Code sind Kommentare ein Zeichen für schlechten Code. Guter Code sollte sich selbst dokumentieren. Es gibt jedoch Ausnahmen: komplexe Geschäftslogik, Arbeit mit Legacy-Code oder öffentliche APIs.



Überflüssiger Kommentar (schlecht):

// Zähler um 1 erhöhencounter += 1


Nützlicher Kommentar (gut):

// Verwende Decimal, um Rundungsfehler bei der Arbeit mit Währungen zu vermeidenlet price = Decimal(string: "19.99") ?? .zero


Regeln für die Arbeit mit Kommentaren:

  • Schreiben Sie nichts Offensichtliches – der Code liest sich von selbst.
  • Verwenden Sie // MARK: - für

Blogs

Buchempfehlungen