Swift:
การปรับโครงสร้างโค้ด

วิธีทำ:

เรามาเริ่มกันด้วยตัวอย่าง Swift พื้นฐานที่เรามีโค้ดที่ซ้ำกัน:

func printUserDetails(firstName: String, lastName: String, age: Int) {
    print("ชื่อ: \(firstName)")
    print("นามสกุล: \(lastName)")
    print("อายุ: \(age)")
}

func printUserJob(title: String, company: String) {
    print("ตำแหน่งงาน: \(title)")
    print("บริษัท: \(company)")
}

การปรับโครงสร้างใหม่นี้จะรวมถึงการสร้าง User struct เพื่อครอบคลุมคุณลักษณะผู้ใช้และเพิ่มวิธีการพิมพ์รายละเอียด:

struct User {
    let firstName: String
    let lastName: String
    let age: Int
    let jobTitle: String
    let company: String

    func printDetails() {
        print("ชื่อ: \(firstName)")
        print("นามสกุล: \(lastName)")
        print("อายุ: \(age)")
        print("ตำแหน่งงาน: \(jobTitle)")
        print("บริษัท: \(company)")
    }
}

let user = User(firstName: "John", lastName: "Doe", age: 30, jobTitle: "นักพัฒนาซอฟต์แวร์", company: "Tech Solutions")
user.printDetails()

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

ชื่อ: John
นามสกุล: Doe
อายุ: 30
ตำแหน่งงาน: นักพัฒนาซอฟต์แวร์
บริษัท: Tech Solutions

ลงลึก

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

ทางเลือกอื่นสำหรับการปรับโครงสร้างใหม่ด้วยตนเอง รวมถึงเครื่องมืออัตโนมัติและ IDE (Integrated Development Environments) ที่สามารถช่วยตรวจจับโค้ดที่ซ้ำกัน แนะนำการทำให้เรียบง่าย และสร้างส่วนของโค้ดโดยอัตโนมัติ Xcode สำหรับการพัฒนา Swift มีเครื่องมือปรับโครงสร้างใหม่หลายอย่าง เช่น ฟังก์ชันการเปลี่ยนชื่อและการดึงวิธีการออกมา ซึ่งสามารถลดศักยภาพของข้อผิดพลาดจากมนุษย์ในกระบวนการ

เมื่อพิจารณาการปรับโครงสร้างใหม่ สิ่งสำคัญคือต้องมีชุดทดสอบที่แข็งแกร่งเอาไว้ การทดสอบทำหน้าที่เป็นเครื่องป้องกัน เพื่อให้แน่ใจว่าการเปลี่ยนแปลงที่คุณกำลังทำไม่ได้นำเข้ามาซึ่งบั๊ก สิ่งนี้สำคัญเป็นพิเศษ เนื่องจากเป้าหมายหลักของการปรับโครงสร้างใหม่คือการเปลี่ยนโครงสร้างภายในโดยไม่ส่งผลกระทบต่อพฤติกรรมภายนอก

ดูเพิ่มเติม