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 Entwicklungsumgebung, 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.