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

วิธีทำ:

มาปรับโครงสร้างเมทอดง่ายๆใน C# ที่คำนวณและพิมพ์ผลรวมของอาร์เรย์ของตัวเลขกัน:

ก่อนปรับโครงสร้าง:

public class Calculator
{
    public void CalculateSum()
    {
        int[] numbers = { 1, 2, 3, 4, 5 };
        int sum = 0;
        for (int i = 0; i < numbers.Length; i++)
        {
            sum += numbers[i];
        }
        Console.WriteLine("The sum is " + sum);
    }
}

หลังจากปรับโครงสร้าง:

public class Calculator
{
    private readonly int[] _numbers;

    public Calculator(int[] numbers)
    {
        _numbers = numbers;
    }

    public int CalculateSum()
    {
        return _numbers.Sum();
    }

    public void DisplaySum()
    {
        Console.WriteLine($"The sum is {CalculateSum()}");
    }
}

// การใช้งาน:
var calculator = new Calculator(new[] { 1, 2, 3, 4, 5 });
calculator.DisplaySum();

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

การศึกษาลึก

การปรับโครงสร้างมีรากฐานมาจากชุมชนโปรแกรมเมอร์ตัวเล็ก (smalltalk) และได้รับความนิยมในช่วงทศวรรษที่ 1990 โดยหนังสือ “Refactoring: Improving the Design of Existing Code” ของมาร์ติน ฟาวเลอร์ ตลอดหลายปีที่ผ่านมา, มันได้กลายเป็นส่วนหนึ่งของวิธีการ agile และปฏิบัติการเขียนโค้ดที่ดี

มีวิธีการปรับโครงสร้างที่หลากหลาย, เช่น Red-Green-Refactor ใน Test-Driven Development (TDD) ประกันว่าการปรับโครงสร้างจะไม่นำเข้าบั๊กด้วยการเริ่มต้นด้วยการทดสอบที่ล้มเหลว, ทำให้มันผ่าน, แล้วทำความสะอาดโค้ด

เมื่อดำเนินการปรับโครงสร้าง, สิ่งสำคัญคือต้องมีชุดการทดสอบที่ครอบคลุมเพื่อให้แน่ใจว่าไม่มีการทำลายฟังก์ชันการทำงานระหว่างกระบวนการ โปรแกรมช่วยการปรับโครงสร้างอัตโนมัติ, เช่น ReSharper สำหรับ C#, ก็สามารถช่วยในกระบวนการนี้ได้โดยการให้วิธีที่ปลอดภัยในการเปลี่ยนโครงสร้างของโค้ด อย่างไรก็ตาม, เครื่องมือควรเป็นเพียงส่วนเสริมกับความเข้าใจอย่างลึกซึ้งเกี่ยวกับฐานโค้ดและหลักการเขียนโค้ด

ดูเพิ่มเติม

  • งานชิ้นสำคัญของมาร์ติน ฟาวเลอร์เกี่ยวกับการปรับโครงสร้าง: Refactoring: Improving the Design of Existing Code
  • คู่มือของไมโครซอฟต์เกี่ยวกับการปรับโครงสร้างใน Visual Studio: Refactoring (C#)
  • การศึกษาอย่างละเอียดเกี่ยวกับรูปแบบการปรับโครงสร้างพร้อมตัวอย่าง: SourceMaking Refactoring