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

วิธีการ:

สมมุติว่าคุณมีโค้ดชุดหนึ่งที่คำนวณและพิมพ์พื้นที่และเส้นรอบวงของสี่เหลี่ยมผืนผ้าจากความยาวและความกว้าง โค้ดนี้ทำงานได้ แต่มันซ้ำซ้อนและค่อนข้างยุ่งเหยิง

# เวอร์ชันเดิม
length = 4
width = 3

# คำนวณพื้นที่และเส้นรอบวง
area = length * width
perimeter = 2 * (length + width)

print("พื้นที่:", area)
print("เส้นรอบวง:", perimeter)

เราสามารถปรับโครงสร้างโค้ดนี้โดยการห่อหุ้มฟังก์ชันที่มีความสามารถเข้าไป ซึ่งทำให้โค้ดเป็นระเบียบและสามารถนำกลับมาใช้ใหม่ได้ง่ายขึ้น:

# เวอร์ชันที่ปรับโครงสร้างแล้ว

def calculate_area(length, width):
    return length * width

def calculate_perimeter(length, width):
    return 2 * (length + width)

# การใช้งาน
length = 4
width = 3

print("พื้นที่:", calculate_area(length, width))
print("เส้นรอบวง:", calculate_perimeter(length, width))

ทั้งสองส่วนโค้ดนี้ให้ผลลัพธ์เหมือนกัน:

พื้นที่: 12
เส้นรอบวง: 14

แต่เวอร์ชันที่ปรับโครงสร้างแล้วน่าอ่านขึ้นและแยกความสนใจออกจากกัน ทำให้ง่ายต่อการอัปเดตหนึ่งการคำนวณโดยไม่ส่งผลกระทบต่ออีกอันหนึ่ง

ลงลึก

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

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

การปรับโครงสร้างใน Python มักใช้เครื่องมือเช่น PyCharm ซึ่งมีความสามารถในการปรับโครงสร้างในตัว, หรือ rope, ไลบรารีของ Python ที่ออกแบบมาเพื่อการปรับโครงสร้างโค้ดเป็นพิเศษ การใช้การควบคุมเวอร์ชันอย่างระมัดระวัง เช่น git, ในระหว่างการปรับโครงสร้างโค้ดเป็นสิ่งที่แนะนำอย่างยิ่งยวดเพื่อติดตามการเปลี่ยนแปลงอย่างค่อยเป็นค่อยไป

ดูเพิ่มเติม

สำหรับผู้ที่ต้องการข้อมูลเพิ่มเติม สามารถดูทรัพยากรด้านล่างนี้: