TypeScript:
Rifattorizzazione

Come fare:

Considera una funzione TypeScript che ha visto giorni migliori - è un po’ un disastro e potrebbe usare un po’ di cura amorevole:

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

Rifattorizzato, potrebbe apparire così:

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

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

Il secondo esempio è più robusto, sfruttando il sistema di tipi di TypeScript con un interface per evitare potenziali errori di runtime e migliorare la leggibilità.

Approfondimento

Il Refactoring non è un concetto moderno; è evoluto con la programmazione, diventando più formalizzato con la pubblicazione del libro di Martin Fowler “Refactoring: Miglioramento del design del codice esistente” nel 1999. È cruciale in un ambiente di sviluppo Agile, facilitando cambiamenti adattivi al codice. Alcune alternative al refactoring manuale includono strumenti automatizzati come TSLint o il server linguistico di TypeScript stesso che possono suggerire o persino eseguire determinati compiti di refactoring per te. I dettagli di implementazione di solito coinvolgono il riconoscimento di “bad smells” del codice, come codice duplicato, metodi lunghi o classi grandi, e applicare pattern per rimediare, come estrarre metodi, spostarsi in classi più adatte o usare costrutti più semplici. Questi pattern sono fondamentali per comprendere il come e il perché del refactoring.

Vedi anche