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å
- Martin Fowlers Refaktoriseringsnettsted: https://refactoring.com/
- Offisiell Fish Shell-dokumentasjon: https://fishshell.com/docs/current/index.html