Fish Shell:
רפקטורינג

איך לעשות:

דמיינו שיש לכם סקריפט שהתפתח לאורך זמן. הוא התחיל פשוט, אבל עכשיו הוא חיה שמתפשטת עם זרועות של לוגיקה. הנה דוגמא ממוזערת של ריפקטורינג של פונקציה כדי להפוך אותה לקריאה ויעילה יותר:

לפני ריפקטורינג:

function old_and_clunky
    set color (cat ~/.config/fish/color_theme)
    if test "$color" = 'blue'
        echo 'נקבעה ערכת צבע כחולה!'
    else if test "$color" = 'red'
        echo 'נקבעה ערכת צבע אדומה!'
    else
        echo 'נקבעה ערכת צבע ברירת מחדל!'
    end
end

אחרי ריפקטורינג:

function set_theme_color
    set theme_color (cat ~/.config/fish/color_theme)
    switch $theme_color
        case blue
            echo 'נקבעה ערכת צבע כחולה!'
        case red
            echo 'נקבעה ערכת צבע אדומה!'
        default
            echo 'נקבעה ערכת צבע ברירת מחדל!'
    end
end

הריפקטורינג שיפר את שם הפונקציה כדי לתאר טוב יותר את מטרתה והחליף את שרשרת ה-if-else בהוראת switch נקייה יותר.

פלט לדוגמא:

נקבעה ערכת צבע כחולה!

צלילה עמוקה

ריפקטורינג תואר בפירוט לראשונה בספרו המכונן של מרטין פאולר “Refactoring: Improving the Design of Existing Code”. הספר הציג גישה מובנית לשיפור קוד מבלי לכתוב פונקציונליות חדשה. טכניקות רבות של ריפקטורינג הוצגו מאז, והמושג הפך לחלק בלתי נפרד מפיתוח תוכנה מודרני.

בסביבת Fish Shell, ריפקטורינג עשוי להיראות שונה מעט מאשר בהקשרים אחרים של תכנות בזכות התחביר המיוחד וטבע השורת הפקודה שלו. אלטרנטיבות לריפקטורינג סקריפטים ב-Fish עשויות לכלול העברה לשפת של קונסולה אחרת או שימוש בכלים חיצוניים לניהול סקריפטים מתקדם יותר. עם זאת, לשמור על תחביר Fish מקורי פירושו לרוב אינטגרציה טובה יותר עם תכונות המעטפת וחוויה זורמת יותר בסך הכל.

כאשר מבצעים ריפקטורינג ב-Fish Shell, אתם בעיקר מתמודדים עם פונקציות ופקודות במקום עם מחלקות או מודולים בהיקף רחב שנפוצים יותר בשפות אחרות. גרגיריות זו יכולה להפוך את משימת הריפקטורינג לתהליך יותר מיידי וישיר, אך גם מדגישה את חשיבות הקוד הברור, הקצר והקל לתחזוקה.

ראו גם