Code-Review in Swift: Was man prüfen und wie man Anfängern Feedback geben sollte

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

Code-Review in Swift: Was man prüfen und wie man Feedback geben sollte

Code-Review ist nicht nur eine formelle Überprüfung des Codes vor dem Merge. Es ist eines der effektivsten Werkzeuge zur Verbesserung der Codequalität, zur Verbreitung von Wissen im Team und zur Vermeidung von Fehlern. Für angehende iOS/macOS-Entwickler wirkt der Review-Prozess oft einschüchternd: "Was, wenn ich einen kritischen Fehler übersehe?" oder "Wie schreibe ich einen Kommentar, ohne einen Kollegen zu verletzen?". In diesem Artikel gehen wir darauf ein, worauf man bei der Überprüfung von Swift-Code konkret achten sollte und wie man Feedback gibt, das nützlich und motivierend ist.



Was man in Swift-Code prüfen sollte: Eine Checkliste für den Reviewer

Damit das Review strukturiert und effektiv ist, unterteilen Sie die Überprüfung in mehrere logische Blöcke. Beginnen Sie mit dem allgemeinen Verständnis der Aufgabe und gehen Sie dann zu den Details über.



1. Architektur und Logik

Der erste und wichtigste Punkt: Löst der Code die gestellte Aufgabe? Vertiefen Sie sich nicht in den Stil, bevor Sie sicher sind, dass die Logik korrekt ist.

  • Erfüllung der Anforderungen: Überprüfen Sie, ob der Code genau das tut, was in der Aufgabe oder im Ticket beschrieben ist.
  • Richtigkeit der Algorithmen: Gibt es logische Fehler? Zum Beispiel, ob Bedingungen in if oder guard vertauscht wurden.
  • Behandlung von Randfällen: Was passiert, wenn das Array leer ist oder die Netzwerkanfrage nil zurückgibt? Der Code sollte robust sein.


// ❌ Schlecht: Der Fall eines leeren Arrays wird nicht berücksichtigtfunc firstElement(_ array: [Int]) -> Int {    return array[0] // Crash!}

// ✅ Gut: Sicheres Extrahierenfunc firstElement(_ array: [Int]) -> Int? { return array.first}


2. Typsicherheit und Umgang mit Optionals

Swift ist eine streng typisierte Sprache, und ihre Stärke ist die Sicherheit. Stellen Sie sicher, dass der Autor des Codes Force Unwrapping nicht missbraucht.

  • Force Unwrap (!): Nur in Fällen zulässig, in denen Sie zu 100% sicher sind, dass der Wert nicht nil ist (z. B. IBOutlet).
  • Verwendung von Optional Binding: if let oder guard let ist der Standard- und sichere Weg.
  • IUO (Implicitly Unwrapped Optional): Vermeiden Sie diese nach Möglichkeit, verwenden Sie normale Optionals.


// ❌ Schlecht: Force Unwrap ohne Prüfunglet url = URL(string: "https://example.com")!// Wenn die Zeichenkette ungültig ist, stürzt die App ab

// ✅ Gut: Sichere Initialisierungguard let url = URL(string: "https://example.com") else { print("Ungültige URL") return}


3. Benennung und Lesbarkeit des Codes

Code wird viel häufiger gelesen als geschrieben. Gute Namen für Variablen, Funktionen und Typen sind der Schlüssel zur Wartbarkeit eines Projekts.

  • Swift-Konventionen: Verwenden Sie camelCase für Variablen/Funktionen und PascalCase für Typen (struct, class, enum).
  • Aussagekräftigkeit des Namens: Der Name sollte den Zweck beschreiben. v ist schlecht, userName ist gut.
  • Boolesche Eigenschaften: Sollten mit is, has, can beginnen (z. B. isEnabled).


// ❌ Schlechtlet a = fetchData()

// ✅ Gutlet userProfile = fetchCurrentUserProfile()


4. Leistung und Speicherverwaltung

Für iOS/macOS-Anwendungen ist es entscheidend, Speicherlecks und unnötige Berechnungen zu vermeiden.

  • Starke Referenzzyklen (Retain cycles): Überprüfen Sie Closures – erfassen sie self ohne [weak self] oder [unowned self].
  • Arbeit mit Threads: Alle UI-Updates müssen im Hauptthread erfolgen. Überprüfen Sie, ob DispatchQueue.main.async verwendet wird.
  • Aus

Blogs

Buchempfehlungen