Fish Shell:
Refatoração
Como fazer:
Imagine que você possui um script que cresceu bastante com o tempo. Começou simples, mas agora é uma fera repleta de tentáculos lógicos. Aqui está um exemplo simples de refatoração de uma função para torná-la mais legível e eficiente:
Antes da refatoração:
function old_and_clunky
set color (cat ~/.config/fish/color_theme)
if test "$color" = 'blue'
echo 'Tema azul ativado!'
else if test "$color" = 'red'
echo 'Tema vermelho ativado!'
else
echo 'Tema padrão ativado!'
end
end
Depois da refatoração:
function set_theme_color
set theme_color (cat ~/.config/fish/color_theme)
switch $theme_color
case blue
echo 'Tema azul ativado!'
case red
echo 'Tema vermelho ativado!'
default
echo 'Tema padrão ativado!'
end
end
A refatoração melhorou o nome da função para descrever melhor seu propósito e substituiu a cadeia de if-else por uma declaração switch
mais limpa.
Saída de exemplo:
Tema azul ativado!
Mergulho Profundo
A Refatoração foi descrita em detalhes pela primeira vez no livro seminal de Martin Fowler “Refatoração: Melhorando o Design de Códigos Existentes”. O livro estabeleceu uma abordagem estruturada para melhorar o código sem escrever novas funcionalidades. Muitas técnicas de refatoração foram introduzidas desde então, e o conceito se tornou uma parte fundamental do desenvolvimento de software moderno.
No ambiente do Fish Shell, a refatoração pode parecer um pouco diferente do que em outros contextos de programação devido à sua sintaxe especializada e natureza de linha de comando. Alternativas para refatorar scripts em Fish podem envolver a porta para outro idioma de shell ou usar ferramentas externas para um gerenciamento de script mais avançado. No entanto, manter a sintaxe nativa do Fish geralmente significa uma melhor integração com os recursos do shell e uma experiência mais simplificada de forma geral.
Ao refatorar no Fish Shell, você está lidando principalmente com funções e comandos em vez de classes ou módulos de amplo escopo comuns em outras linguagens. Esta granularidade pode tornar a tarefa de refatoração um processo mais imediato e direto, mas também enfatiza a importância de um código claro, conciso e mantível.
Veja Também
- Site de Refatoração de Martin Fowler: https://refactoring.com/
- Documentação oficial do Fish Shell: https://fishshell.com/docs/current/index.html