TypeScript:
Refaktoryzacja

Jak to zrobić:

Rozważmy funkcję TypeScript, która miała lepsze dni - jest nieco bałaganu i potrzebuje trochę troskliwej opieki:

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

Po refaktoryzacji może to wyglądać tak:

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

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

Drugi przykład jest bardziej solidny, wykorzystuje system typów TypeScript za pomocą interface, aby uniknąć potencjalnych błędów wykonania i poprawić czytelność.

Szczegółowe omówienie

Refaktoryzacja nie jest nowoczesnym pojęciem; ewoluowała razem z programowaniem, stając się bardziej sformalizowana po wydaniu książki Martina Fowlera “Refaktoryzacja: Ulepszanie struktury istniejącego kodu” w 1999 roku. Jest kluczowa w środowisku rozwoju Agile, ułatwiając adaptacyjne zmiany kodu. Niektóre alternatywy dla ręcznej refaktoryzacji to narzędzia automatyczne, takie jak TSLint czy własny serwer językowy TypeScript, które mogą sugerować, a nawet wykonywać niektóre zadania refaktoryzacyjne za Ciebie. Szczegóły implementacji zwykle obejmują rozpoznawanie “zapachów kodu”, takich jak zduplikowany kod, długie metody czy duże klasy, oraz stosowanie wzorców w celu ich naprawienia — takich jak ekstrakcja metod, przenoszenie do bardziej odpowiednich klas lub używanie prostszych konstrukcji. Te wzorce są kluczowe do zrozumienia jak i dlaczego dokonuje się refaktoryzacji.

Zobacz również