Fish Shell:
Refaktorering

Hvordan:

Forestille deg at du har et skript som har vokst ganske mye over tid. Det startet enkelt, men nå er det et beist som sprer seg med tentakler av logikk. Her er et lite eksempel på refaktorisering av en funksjon for å gjøre den mer lesbart og effektiv:

Før refaktorisering:

function old_and_clunky
    set color (cat ~/.config/fish/color_theme)
    if test "$color" = 'blue'
        echo 'Blue theme set!'
    else if test "$color" = 'red'
        echo 'Red theme set!'
    else
        echo 'Default theme set!'
    end
end

Etter refaktorisering:

function set_theme_color
    set theme_color (cat ~/.config/fish/color_theme)
    switch $theme_color
        case blue
            echo 'Blue theme set!'
        case red
            echo 'Red theme set!'
        default
            echo 'Default theme set!'
    end
end

Refaktorisering forbedret funksjonens navn for bedre å beskrive dens formål og erstattet if-else-kjeden med en renere switch-setning.

Eksempelutdata:

Blue theme set!

Dypdykk

Refaktorisering ble først beskrevet i detalj i Martin Fowlers banebrytende bok “Refaktorisering: Forbedring av eksisterende kodes design”. Boken la ut en strukturert tilnærming for å forbedre kode uten å skrive ny funksjonalitet. Mange refaktoriserings-teknikker har blitt introdusert siden da, og konseptet har blitt en grunnleggende del av moderne programvareutvikling.

I Fish Shell-miljøet kan refaktorisering se litt annerledes ut enn i andre programmeringskontekster på grunn av dens spesialiserte syntaks og kommandolinje-natur. Alternativer til refaktorisering av skript i Fish, kan innebære porting til et annet shell-språk eller bruk av eksterne verktøy for mer avansert skripthåndtering. Imidlertid betyr opprettholdelsen av den native Fish-syntaksen ofte bedre integrasjon med shell-funksjonene og en mer strømlinjeformet opplevelse generelt.

Når du refaktorerer i Fish Shell, håndterer du stort sett funksjoner og kommandoer i stedet for klasser eller moduler med bredt omfang som er vanlige i andre språk. Denne granulariteten kan gjøre oppgaven med refaktorisering til en mer umiddelbar og direkte prosess, men det understreker også betydningen av klar, konsis og vedlikeholdbar kode.

Se også