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
, ในระหว่างการปรับโครงสร้างโค้ดเป็นสิ่งที่แนะนำอย่างยิ่งยวดเพื่อติดตามการเปลี่ยนแปลงอย่างค่อยเป็นค่อยไป
ดูเพิ่มเติม
สำหรับผู้ที่ต้องการข้อมูลเพิ่มเติม สามารถดูทรัพยากรด้านล่างนี้:
- หนังสือของ Martin Fowler: Refactoring: Improving the Design of Existing Code
- การปรับโครงสร้างใน Python ด้วย
rope
: GitHub - rope - เอกสารการปรับโครงสร้างของ PyCharm: Jetbrains PyCharm Refactoring Source Code
- Refactoring.guru: การปรับโครงสร้างและรูปแบบการออกแบบ
- บรรยายเกี่ยวกับ Clean Code โดย Uncle Bob (Robert C. Martin): Clean Code - Uncle Bob / Lesson 1