Fish Shell:
Refactorización

Cómo hacerlo:

Imagina que tienes un script que ha crecido bastante con el tiempo. Comenzó siendo simple, pero ahora es una bestia desbordante de lógica. Aquí hay un ejemplo pequeño de cómo refactorizar una función para que sea más legible y eficiente:

Antes de la refactorización:

function old_and_clunky
    set color (cat ~/.config/fish/color_theme)
    if test "$color" = 'blue'
        echo '¡Tema azul establecido!'
    else if test "$color" = 'red'
        echo '¡Tema rojo establecido!'
    else
        echo '¡Tema predeterminado establecido!'
    end
end

Después de la refactorización:

function set_theme_color
    set theme_color (cat ~/.config/fish/color_theme)
    switch $theme_color
        case blue
            echo '¡Tema azul establecido!'
        case red
            echo '¡Tema rojo establecido!'
        default
            echo '¡Tema predeterminado establecido!'
    end
end

La refactorización mejoró el nombre de la función para describir mejor su propósito y reemplazó la cadena de if-else por una sentencia switch más limpia.

Salida de ejemplo:

¡Tema azul establecido!

Inmersión Profunda

La refactorización fue descrita en detalle por primera vez en el libro seminal de Martin Fowler “Refactoring: Improving the Design of Existing Code”. El libro estableció un enfoque estructurado para mejorar el código sin escribir nueva funcionalidad. Desde entonces, se han introducido muchas técnicas de refactorización, y el concepto se ha convertido en una parte fundamental del desarrollo de software moderno.

En el entorno de Fish Shell, la refactorización podría verse ligeramente diferente que en otros contextos de programación debido a su sintaxis especializada y naturaleza de línea de comandos. Alternativas a la refactorización de scripts en Fish podrían involucrar el traslado a otro lenguaje de shell o el uso de herramientas externas para una gestión de scripts más avanzada. Sin embargo, mantener la sintaxis nativa de Fish a menudo significa una mejor integración con las características de la shell y una experiencia más fluida en general.

Cuando se refactoriza en Fish Shell, en su mayoría se trabaja con funciones y comandos en lugar de clases o módulos de amplio alcance comunes en otros lenguajes. Esta granularidad puede hacer que la tarea de refactorizar sea un proceso más inmediato y directo, pero también enfatiza la importancia de un código claro, conciso y mantenible.

Ver También