TypeScript:
Refaktorisering

Hur man gör:

Tänk dig en TypeScript funktion som har sett bättre dagar - den är lite rörig och kan behöva lite ömhet och omsorg:

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

Refaktoriserad kan detta se ut så här:

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

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

Det andra exemplet är mer robust, genom att utnyttja TypeScripts typsystem med ett interface för att undvika potentiella körningstidsfel och förbättra läsbarheten.

Djupdykning

Refaktorisering är inte ett modernt koncept; det har utvecklats med programmeringen, och blev mer formaliserat med utgivningen av Martin Fowlers bok “Refactoring: Improving the Design of Existing Code” år 1999. Det är avgörande i en Agile utvecklingsmiljö, vilket underlättar anpassningsbara kodändringar. Alternativ till manuell refaktorisering inkluderar automatiserade verktyg som TSLint eller TypeScript’s eget språkserver som kan föreslå eller till och med utföra vissa refaktoreringsuppgifter åt dig. Genomförandet detaljer involverar vanligtvis att känna igen “kodlukt”, såsom dubblettkod, långa metoder eller stora klasser, och tillämpa mönster för att avhjälpa—som att extrahera metoder, flytta till mer lämpliga klasser eller använda enklare konstruktioner. Dessa mönster är nyckeln till att förstå hur och varför man refaktoriserar.

Se även