Fish Shell:
Koodin refaktorointi
Kuinka:
Kuvittele, että sinulla on skripti, joka on kasvanut huomattavasti ajan myötä. Se alkoi yksinkertaisena, mutta nyt se on hirviö, joka rönsyilee loogisten lonkeroiden kanssa. Tässä on pieni esimerkki funktion refaktoroinnista, jotta se olisi luettavampaa ja tehokkaampaa:
Ennen refaktorointia:
function old_and_clunky
set color (cat ~/.config/fish/color_theme)
if test "$color" = 'blue'
echo 'Sininen teema asetettu!'
else if test "$color" = 'red'
echo 'Punainen teema asetettu!'
else
echo 'Oletusteema asetettu!'
end
end
Refaktoroinnin jälkeen:
function set_theme_color
set theme_color (cat ~/.config/fish/color_theme)
switch $theme_color
case blue
echo 'Sininen teema asetettu!'
case red
echo 'Punainen teema asetettu!'
default
echo 'Oletusteema asetettu!'
end
end
Refaktorointi paransi funktion nimeä kuvaamaan paremmin sen tarkoitusta ja korvasi if-else-ketjun puhtaammalla switch
-lauseella.
Esimerkkitulostus:
Sininen teema asetettu!
Syväsukellus
Refaktorointi kuvattiin ensimmäisen kerran yksityiskohtaisesti Martin Fowlerin merkittävässä kirjassa “Refactoring: Improving the Design of Existing Code”. Kirja esitti rakenteellisen lähestymistavan koodin parantamiseen kirjoittamatta uutta toiminnallisuutta. Sen jälkeen on esitelty monia refaktorointitekniikoita, ja käsite on tullut olennaiseksi osaksi modernia ohjelmistokehitystä.
Fish Shell -ympäristössä refaktorointi saattaa näyttää hieman erilaiselta kuin muissa ohjelmointikonteksteissa sen erikoistuneen syntaksin ja komentorivin luonteen vuoksi. Vaihtoehtoja Fish-skriptien refaktoroinnille saattaisi olla niiden siirtäminen toiseen shell-kieliin tai ulkoisten työkalujen käyttö edistyneemmän skriptinhallinnan kannalta. Kuitenkin natiivin Fish-syntaksin säilyttäminen tarkoittaa usein parempaa integraatiota kuoren ominaisuuksiin ja yleisesti sujuvampaa kokemusta.
Refaktoroidessa Fish Shellissä, käsittelet enimmäkseen funktioita ja komentoja verrattuna muihin kieliin yleisiin laajemman soveltamisalan luokkiin tai moduuleihin. Tämä rakeisuus voi tehdä refaktoroinnista välittömämmän ja suorempaa prosessin, mutta se myös korostaa selkeän, tiiviin ja ylläpidettävän koodin tärkeyttä.
Katso Myös
- Martin Fowlerin Refaktorointi-verkkosivusto: https://refactoring.com/
- Virallinen Fish Shell -dokumentaatio: https://fishshell.com/docs/current/index.html