Fish Shell:
Рефакторинг

Як це зробити:

Уявіть, що у вас є скрипт, який з часом сильно зріс. Він починався просто, але тепер це звір з розпускаючими щупальцями логіки. Ось простий приклад рефакторингу функції, щоб зробити її більш читабельною та ефективною:

Перед рефакторингом:

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

Після рефакторингу:

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

Рефакторинг поліпшив назву функції для кращого опису її призначення та замінив ланцюг if-else на більш чистий оператор switch.

Приклад виводу:

Blue theme set!

Глибоке занурення

Рефакторинг був детально описаний в передовій книзі Мартіна Фаулера “Refactoring: Improving the Design of Existing Code”. Книга розкрила структурований підхід до покращення коду без написання нової функціональності. З того часу було введено багато технік рефакторингу, і концепція стала фундаментальною частиною сучасної програмної розробки.

У середовищі Fish Shell рефакторинг може виглядати трохи інакше, ніж у інших програмних контекстах, через його спеціалізований синтаксис та природу командного рядка. Альтернативи рефакторингу скриптів у Fish можуть включати портування на іншу мову оболонки або використання зовнішніх інструментів для більш передового управління скриптами. Однак, збереження нативного синтаксису Fish часто означає кращу інтеграцію з можливостями оболонки та більш гладкий загальний досвід.

При рефакторингу у Fish Shell ви здебільшого маєте справу з функціями та командами, а не з широкоспектральними класами чи модулями, які є загальноприйнятими в інших мовах. Ця деталізація може робити процес рефакторингу більш негайним і прямим, але також підкреслює важливість чіткого, лаконічного та підтримуваного коду.

Дивіться також