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 ви здебільшого маєте справу з функціями та командами, а не з широкоспектральними класами чи модулями, які є загальноприйнятими в інших мовах. Ця деталізація може робити процес рефакторингу більш негайним і прямим, але також підкреслює важливість чіткого, лаконічного та підтримуваного коду.
Дивіться також
- Вебсайт Мартіна Фаулера про рефакторинг: https://refactoring.com/
- Офіційна документація Fish Shell: https://fishshell.com/docs/current/index.html