TypeScript:
Refactoring

Wie geht das:

Betrachten Sie eine TypeScript-Funktion, die schon bessere Tage gesehen hat - sie ist etwas durcheinander und könnte etwas liebevolle Pflege gebrauchen:

function userInfo(data: any): string {
    return "User Info: " + data.name + ", " + data.age + ", " + data.email + ";";
}

Refaktoriert könnte dies so aussehen:

interface User {
    name: string;
    age: number;
    email: string;
}

function formatUserInfo(user: User): string {
    return `User Info: ${user.name}, ${user.age}, ${user.email};`;
}

Das zweite Beispiel ist robuster und nutzt das Typsystem von TypeScript mit einem Interface, um potentielle Laufzeitfehler zu vermeiden und die Lesbarkeit zu verbessern.

Tiefergehend

Refactoring ist kein modernes Konzept; es entwickelte sich mit der Programmierung und wurde mit der Veröffentlichung von Martin Fowlers Buch “Refactoring: Improving the Design of Existing Code” im Jahr 1999 formeller. Es ist entscheidend in einer agilen Entwicklungs­umgebung, um anpassungsfähige Code-Änderungen zu erleichtern. Einige Alternativen zum manuellen Refactoring umfassen automatisierte Werkzeuge wie TSLint oder den eigenen Sprachserver von TypeScript, die bestimmte Refactoring-Aufgaben für Sie vorschlagen oder sogar durchführen können. Die Implementierungsdetails umfassen in der Regel die Erkennung von “Code-Gerüchen”, wie doppelten Code, lange Methoden oder große Klassen, und die Anwendung von Mustern zur Behebung – wie das Extrahieren von Methoden, die Verlagerung in besser geeignete Klassen oder die Verwendung einfacherer Konstrukte. Diese Muster sind der Schlüssel zum Verständnis des Wie und Warum des Refactorings.

Siehe auch