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ที่เรียบง่ายกว่า

ตัวอย่างผลลัพธ์:

ตั้งค่าธีมสีน้ำเงิน!

ศึกษาลึกลงไป

การปรับโครงสร้างถูกอธิบายอย่างละเอียดครั้งแรกในหนังสือเข้มข้นของ Martin Fowler ที่ชื่อ “Refactoring: Improving the Design of Existing Code” หนังสือนำเสนอวิธีการที่มีโครงสร้างในการปรับปรุงโค้ดโดยไม่ต้องเขียนฟังก์ชันใหม่ มากมายเทคนิคการปรับโครงสร้างได้ถูกนำเสนอตั้งแต่นั้นมา และแนวคิดนี้กลายเป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์สมัยใหม่

ในสภาพแวดล้อม Fish Shell การปรับโครงสร้างอาจดูแตกต่างไปจากบริบทการเขียนโปรแกรมอื่นๆ เนื่องจากไวยากรณ์เฉพาะและลักษณะคำสั่งบนเส้นทางคำสั่ง ทางเลือกในการปรับโครงสร้างสคริปต์ใน Fish อาจรวมถึงการย้ายไปยังภาษา Shell อื่นหรือการใช้เครื่องมือภายนอกสำหรับการจัดการสคริปต์ขั้นสูง อย่างไรก็ตาม การรักษาไวยากรณ์ของ Fish เป็นแบบดั้งเดิมมักหมายถึงการบูรณาการที่ดีขึ้นกับคุณลักษณะของ shell และประสบการณ์ที่เรียบง่ายยิ่งขึ้นโดยรวม

เมื่อปรับโครงสร้างใน Fish Shell คุณจะต้องจัดการกับฟังก์ชันและคำสั่งมากกว่าคลาสหรือโมดูลที่มีขอบเขตกว้างในภาษาอื่น ๆ ความละเอียดนี้สามารถทำให้การปรับโครงสร้างเป็นกระบวนการที่เร่งด่วนและตรงไปตรงมามากขึ้น แต่ก็เน้นย้ำถึงความสำคัญของโค้ดที่ชัดเจน กระชับ และง่ายต่อการบำรุงรักษา

ดูเพิ่มเติม