Fish Shell:
Refactoring
Comment faire :
Imaginez que vous avez un script qui a beaucoup grandi avec le temps. Il a commencé simplement, mais maintenant, c’est une bête tentaculaire avec des tentacules de logique. Voici un exemple simple de refactorisation d’une fonction pour la rendre plus lisible et efficace :
Avant la refactorisation :
function old_and_clunky
set color (cat ~/.config/fish/color_theme)
if test "$color" = 'blue'
echo 'Thème bleu défini !'
else if test "$color" = 'red'
echo 'Thème rouge défini !'
else
echo 'Thème par défaut défini !'
end
end
Après la refactorisation :
function set_theme_color
set theme_color (cat ~/.config/fish/color_theme)
switch $theme_color
case blue
echo 'Thème bleu défini !'
case red
echo 'Thème rouge défini !'
default
echo 'Thème par défaut défini !'
end
end
La refactorisation a amélioré le nom de la fonction pour mieux décrire son but et a remplacé la chaîne de if-else par une instruction switch
plus propre.
Exemple de sortie :
Thème bleu défini !
Approfondissement
La refactorisation a été décrite en détail pour la première fois dans le livre séminal de Martin Fowler “Refactoring: Improving the Design of Existing Code”. Le livre a établi une approche structurée pour améliorer le code sans écrire de nouvelles fonctionnalités. De nombreuses techniques de refactorisation ont été introduites depuis lors, et le concept est devenu une partie fondamentale du développement logiciel moderne.
Dans l’environnement Fish Shell, la refactorisation peut sembler légèrement différente que dans d’autres contextes de programmation en raison de sa syntaxe spécialisée et de sa nature en ligne de commande. Les alternatives à la refactorisation de scripts dans Fish pourraient impliquer leur portage vers un autre langage de shell ou l’utilisation d’outils externes pour une gestion plus avancée des scripts. Cependant, conserver la syntaxe native de Fish signifie souvent une meilleure intégration avec les fonctionnalités du shell et une expérience globalement plus fluide.
Lors de la refactorisation dans Fish Shell, vous avez principalement affaire à des fonctions et à des commandes par opposition à des classes ou modules de grande portée communs dans d’autres langages. Cette granularité peut rendre la tâche de refactorisation plus immédiate et directe, mais elle souligne également l’importance d’un code clair, concis et maintenable.
Voir aussi
- Le site Web de Refactoring de Martin Fowler : https://refactoring.com/
- Documentation officielle de Fish Shell : https://fishshell.com/docs/current/index.html