Kotlin:
การปรับโครงสร้างโค้ด
วิธีการ:
นี่คือตัวอย่างโค้ด Kotlin ที่แสดงถึงกลิ่นโค้ดทั่วไปและเวอร์ชันที่ปรับโครงสร้างแล้ว มาเริ่มกับชิ้นเนื้อโค้ดที่ทำงานมากเกินไป:
fun processOrders(orders: List<Order>) {
for (order in orders) {
print("Order ID: ${order.id}")
// Calculating order total
var total = 0.0
for (item in order.items) {
total += item.price
}
// Apply discount
if (order.customer.isVIP) {
total *= 0.9
}
print("Total: $total")
// กระบวนการเพิ่มเติม...
}
}
ปรับปรุงเพื่อความสามารถในการอ่านและการแยกส่วนความสนใจที่ดีขึ้น:
fun printOrderSummary(order: Order) {
print("Order ID: ${order.id}")
val total = calculateTotal(order)
print("Total: $total")
}
fun calculateTotal(order: Order): Double {
var total = order.items.sumOf { it.price }
return if (order.customer.isVIP) total * 0.9 else total
}
fun processOrders(orders: List<Order>) {
orders.forEach { printOrderSummary(it) }
}
ไม่มีตัวอย่างผลลัพธ์ที่นี่เนื่องจากเราไม่ได้เปลี่ยนแปลงฟังก์ชันการทำงาน, แต่ความสามารถในการอ่านและการดูแลรักษาโค้ดได้รับการปรับปรุงอย่างมาก!
วิเคราะห์ลึกซึ้ง
การปรับโครงสร้างโค้ดเป็นความคิดที่มีมาตั้งแต่การเริ่มต้นการเขียนโปรแกรม, แต่จริงๆ แล้วได้รับความนิยมเป็นอย่างมากในฐานะวิชาชีพในช่วงทศวรรษที่ 1990, โดยเฉพาะหลังจาก Martin Fowler ได้เผยแพร่หนังสือ “Refactoring: Improving the Design of Existing Code” ในปี 1999 หนังสือเล่มนี้ได้ตั้งชื่อให้กับปฏิบัติการและนิยามวิธีการที่จัดระเบียบสำหรับการใช้งาน รวมถึงแคตตาล็อกของเทคนิคการปรับโครงสร้าง
เมื่อเปรียบเทียบการปรับโครงสร้างกับทางเลือกอื่นๆ: คุณสามารถเขียนโค้ดใหม่จากต้น (มีความเสี่ยงและใช้เวลานาน), หรือเพียงแค่ทำการเปลี่ยนแปลงที่เพิ่มเติม (นำไปสู่การบวมของซอฟต์แวร์และหนี้เทคโนโลยีที่เป็นไปได้) การปรับโครงสร้างเป็นจุดที่เหมาะสม - มันทำให้ทันสมัยและทำความสะอาดขึ้นในขณะที่รักษาระดับความเสี่ยงต่ำ
ในด้านการดำเนินการ, มันสำคัญที่จะต้องมีชุดการทดสอบที่แข็งแกร่งก่อนที่คุณจะเริ่มการปรับโครงสร้างเพื่อรับรองว่าคุณไม่ได้เปลี่ยนแปลงพฤติกรรมของโปรแกรมโดยไม่ได้ตั้งใจ หลาย IDE สมัยใหม่ (รวมถึง IntelliJ สำหรับ Kotlin) มีเครื่องมือการปรับโครงสร้างโค้ดอัตโนมัติเพื่อการเปลี่ยนชื่อตัวแปร, การสร้างเมท็อด, และอื่นๆ, ซึ่งสามารถเร่งกระบวนการและลดข้อผิดพลาด
ดูเพิ่มเติม
- “Refactoring: Improving the Design of Existing Code” โดย Martin Fowler (สำหรับงานพื้นฐานเกี่ยวกับหัวข้อนี้)
- เอกสารการเขียนโค้ดของ Kotlin: https://kotlinlang.org/docs/coding-conventions.html (เพื่อเข้าใจวิธีการเขียนโค้ดที่สะอาดแบบ ‘Kotlin way’)
- การสนับสนุนการปรับโครงสร้างใน IntelliJ IDEA ของ JetBrains: https://www.jetbrains.com/help/idea/refactoring-source-code.html (สำหรับการใช้งานเครื่องมือปรับโครงสร้างโค้ดอย่างปฏิบัติ)
- คู่มือของ Google เกี่ยวกับการปรับโครงสร้างระดับขนาดใหญ่: https://testing.googleblog.com/2017/06/code-health-to-comment-or-not-to-comment.html (สำหรับข้อมูลเชิงลึกเกี่ยวกับการเผชิญกับความท้าทายในการปรับโครงสร้างในระดับใหญ่)