ปรับโครงสร้างโค้ดประสิทธิภาพต่ําโดยใช้โหมดตัวแทนของ GitHub Copilot

เสร็จสมบูรณ์เมื่อ

นักพัฒนาสามารถใช้โหมด Agent ของ GitHub Copilot เพื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ําได้อย่างปลอดภัย

Note

ใช้โหมดถามของ GitHub Copilot เพื่อวิเคราะห์ปัญหาคอขวดด้านประสิทธิภาพและกําหนดแผนการเพิ่มประสิทธิภาพก่อนที่จะใช้โหมดตัวแทนเพื่อดําเนินการเปลี่ยนแปลง วิธีการนี้ช่วยให้มั่นใจได้ว่าการปรับโครงสร้างใหม่จะดําเนินการอย่างรอบคอบและปลอดภัย

โหมดเอเจนท์คืออะไร?

โหมดเอเจนต์ของ GitHub Copilot ทํางานโดยอัตโนมัติเพื่อดําเนินการฟื้นฟูงานที่ซับซ้อนทั่วทั้งฐานโค้ดของคุณ ซึ่งแตกต่างจากโหมดถาม ซึ่งให้คําแนะนําและคําแนะนําในแผงแชท โหมดตัวแทนจะใช้การอัปเดตที่แนะนําเป็นการแก้ไขโดยตรงในไฟล์โค้ดของคุณ

โหมดเอเจนต์สามารถแก้ไขไฟล์ ใช้การเปลี่ยนแปลง เรียกใช้การทดสอบ และดําเนินการคําสั่งตามคําแนะนําของคุณ เข้าใจบริบทของโครงการและสามารถรักษาความสอดคล้องกันในหลายไฟล์ เพื่อให้มั่นใจว่าการเปลี่ยนแปลงการปรับโครงสร้างใหม่จะไม่ทําลายฟังก์ชันที่มีอยู่

โหมดเอเจนต์เหมาะอย่างยิ่งสําหรับการใช้กลยุทธ์การเพิ่มประสิทธิภาพแบบหลายขั้นตอนที่ต้องมีการจัดการการขึ้นต่อกัน โหมดตัวแทนจะกําหนดบริบทที่จําเป็นโดยอัตโนมัติและดําเนินการตามขั้นตอนที่จําเป็นเพื่อให้บรรลุเป้าหมายการปรับปรุงประสิทธิภาพของคุณ

ปรับโครงสร้างโค้ดประสิทธิภาพต่ําโดยใช้โหมดเอเจนต์

คุณสามารถใช้โหมดตัวแทนเพื่อใช้กลยุทธ์การเพิ่มประสิทธิภาพที่ระบุระหว่างการวิเคราะห์โหมดถามของคุณ โหมดเอเจนต์สามารถดําเนินการปรับโครงสร้างหลายขั้นตอนโดยอัตโนมัติในขณะที่ยังคงรักษาฟังก์ชันดั้งเดิมและปรับปรุงประสิทธิภาพของโค้ด

กลยุทธ์สําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา

ต่อไปนี้เป็นกลยุทธ์หลักสําหรับการใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ํา:

  • ปรับโครงสร้างข้อมูลให้เหมาะสม: สั่งให้โหมดเอเจนต์แทนที่โครงสร้างข้อมูลที่ไม่มีประสิทธิภาพ เช่น การค้นหาเชิงเส้นด้วยทางเลือกที่ปรับให้เหมาะสม เช่น พจนานุกรมหรือชุดแฮช

  • ใช้กลไกการแคช: ให้โหมดเอเจนต์เพิ่มการแคชอัจฉริยะเพื่อหลีกเลี่ยงการคํานวณที่ซ้ําซ้อนหรือการดําเนินการที่มีราคาแพง

  • กําจัดรูปแบบการสืบค้น N+1: ใช้โหมดตัวแทนเพื่อรวมการสืบค้นหรือการดําเนินการหลายรายการไว้ในการดําเนินการชุดงานเพื่อประสิทธิภาพที่ดีขึ้น

  • เพิ่มการประมวลผลแบบอะซิงโครนัส: ให้โหมดตัวแทนแปลงการดําเนินการบล็อกเป็นรูปแบบอะซิงโครนัสที่ปรับปรุงความสามารถในการปรับขนาดและการตอบสนอง

  • ลดความซับซ้อนของอัลกอริทึม: มีอัลกอริทึมการปรับโครงสร้างโหมดเอเจนต์เพื่อใช้วิธีการที่มีประสิทธิภาพมากขึ้นด้วยความซับซ้อนของเวลาที่ดีขึ้น

  • มั่นใจในความปลอดภัย: สั่งโหมดเอเจนต์เพื่อตรวจสอบว่าการเพิ่มประสิทธิภาพไม่ได้ทําให้เกิดช่องโหว่ด้านความปลอดภัยหรือข้ามการตรวจสอบความปลอดภัยที่มีอยู่

  • รักษาฟังก์ชันการทํางาน: ใช้โหมดตัวแทนเพื่อรักษาตรรกะทางธุรกิจและการจัดการข้อผิดพลาดที่มีอยู่ทั้งหมดในขณะที่ปรับปรุงลักษณะการทํางาน

โหมดเอเจนต์พร้อมท์สําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา

เมื่อใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ํา ข้อความแจ้งของคุณควรมีความเฉพาะเจาะจง สามารถดําเนินการได้ และรวมถึงข้อควรพิจารณาด้านความปลอดภัย ต่อไปนี้คือตัวอย่างบางส่วนของข้อความภาษาธรรมชาติที่คุณสามารถรวมไว้ในพร้อมท์ของคุณเมื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ํา:

การเตรียมการและความปลอดภัย

  • "ก่อนปรับโครงสร้างใหม่ ให้สร้างการทดสอบหน่วยที่ตรวจสอบพฤติกรรมปัจจุบันของวิธีการที่มีความสําคัญต่อประสิทธิภาพที่เลือก"
  • "วิเคราะห์โค้ดที่เลือกเพื่อหาผลกระทบด้านความปลอดภัย และตรวจสอบให้แน่ใจว่าการปรับโครงสร้างใหม่รักษาการตรวจสอบความปลอดภัยทั้งหมด"
  • "สร้างสาขาสํารองและเรียกใช้การทดสอบที่มีอยู่ก่อนที่จะทําการเพิ่มประสิทธิภาพใดๆ กับโค้ดที่เลือก"

การดําเนินการเพิ่มประสิทธิภาพขั้นพื้นฐาน

  • "ปรับโครงสร้างวิธีการที่เลือกเพื่อใช้การค้นหาพจนานุกรมแทนการค้นหาเชิงเส้นเพื่อปรับปรุงประสิทธิภาพ"
  • "เพิ่มประสิทธิภาพโค้ดที่เลือกโดยใช้กลไกการแคชสําหรับการดําเนินการที่มีราคาแพง"
  • "แทนที่รูปแบบคิวรี N+1 ที่เลือกด้วยการดําเนินการแบบแบทช์เพื่อลดการเรียกฐานข้อมูล"
  • "แปลงการดําเนินการบล็อกที่เลือกเป็นรูปแบบอะซิงโครนัสเพื่อความสามารถในการปรับขนาดที่ดีขึ้น"

รูปแบบการเพิ่มประสิทธิภาพขั้นสูง

  • "ปรับโครงสร้างโค้ดที่เลือกโดยใช้การประมวลผลแบบขนานเพื่อปรับปรุงปริมาณงานในขณะที่ยังคงความปลอดภัยของเธรด"
  • "ปรับอัลกอริทึมที่เลือกให้เหมาะสมเพื่อลดความซับซ้อนของเวลาจาก O(n²) เป็น O(n log n) หรือดีกว่า"
  • "แทนที่โครงสร้างข้อมูลที่ไม่มีประสิทธิภาพที่เลือกด้วยคอลเลกชันที่ปรับให้เหมาะสมเพื่อการค้นหาที่รวดเร็วขึ้น"
  • "ปรับโครงสร้างโค้ดที่เลือกเพื่อใช้รูปแบบการโหลดแบบขี้เกียจเพื่อปรับปรุงประสิทธิภาพการเริ่มต้น"

คุณภาพและการตรวจสอบความถูกต้อง

  • "หลังจากปรับโครงสร้างใหม่ ให้เรียกใช้การทดสอบทั้งหมดและตรวจสอบว่าประสิทธิภาพดีขึ้นในขณะที่ยังคงฟังก์ชันการทํางานเหมือนเดิม"
  • "ตรวจสอบให้แน่ใจว่าโค้ดที่ปรับโครงสร้างใหม่เป็นไปตามข้อตกลงการเข้ารหัส C# ของ Microsoft และแนวทางปฏิบัติที่ดีที่สุดด้านประสิทธิภาพ"
  • "ตรวจสอบว่าโค้ดที่ปรับโครงสร้างใหม่มีลักษณะความปลอดภัยเหมือนกับการใช้งานดั้งเดิม"
  • "สร้างเกณฑ์มาตรฐานประสิทธิภาพเพื่อวัดการปรับปรุงที่ทําได้ผ่านการปรับโครงสร้างใหม่"

เวิร์กโฟลว์โหมดเอเจนต์สําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา

เวิร์กโฟลว์ต่อไปนี้สาธิตวิธีใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดประสิทธิภาพต่ําอย่างปลอดภัย:

  1. เตรียมพื้นที่ทํางานของคุณ

    ตรวจสอบให้แน่ใจว่าคุณกําลังทํางานในสาขา git ที่สะอาดและงานที่มีอยู่ได้รับการยอมรับ การทํางานในสาขาที่สะอาดช่วยให้คุณสามารถย้อนกลับการเปลี่ยนแปลงได้อย่างง่ายดายหากจําเป็น ไปที่ไฟล์ที่มีปัญหาคอขวดด้านประสิทธิภาพที่คุณวิเคราะห์ในโหมดถาม

  2. ตั้งค่ามาตรการความปลอดภัย

    ก่อนทําการเปลี่ยนแปลง ให้ขอให้โหมดเอเจนต์สร้างหรือเรียกใช้การทดสอบหน่วยที่มีอยู่:

    "สร้างการทดสอบหน่วยที่ครอบคลุมสําหรับ ProcessOrders วิธีการเพื่อตรวจสอบพฤติกรรมปัจจุบันก่อนที่จะปรับโครงสร้างใหม่เพื่อประสิทธิภาพ"

    ขั้นตอนนี้ช่วยให้แน่ใจว่าคุณมีตาข่ายความปลอดภัยในการตรวจสอบว่าการปรับโครงสร้างใหม่ของคุณรักษาฟังก์ชันการทํางานไว้

  3. เริ่มต้นด้วยขั้นตอนการเพิ่มประสิทธิภาพง่ายๆ

    เริ่มต้นด้วยการเปลี่ยนแปลงที่มีความเสี่ยงต่ํา เช่น การแทนที่การค้นหาเชิงเส้น

    "ปรับ GetProductById โครงสร้างวิธีการโดยแทนที่การค้นหาเชิงเส้นด้วยการค้นหาพจนานุกรมสําหรับประสิทธิภาพ O(1) แทน O(n)"

    โหมดเอเจนต์จะวิเคราะห์โค้ดและใช้วิธีการตามพจนานุกรม ซึ่งช่วยปรับปรุงประสิทธิภาพการค้นหาได้อย่างมาก

  4. ใช้กลยุทธ์การแคช

    ดําเนินการต่อด้วยการเพิ่มประสิทธิภาพการแคช:

    "เพิ่มการแคชอัจฉริยะให้กับ GetExchangeRate เมธอดเพื่อหลีกเลี่ยงการเรียก API ที่ซ้ําซ้อนสําหรับสกุลเงินเดียวกันภายในระยะเวลาอันสั้น"

    โหมดเอเจนต์สร้างตรรกะการแคชที่เหมาะสม ซึ่งช่วยลดการเรียกใช้บริการภายนอกที่มีราคาแพง

  5. ปรับความซับซ้อนของอัลกอริทึมให้เหมาะสม

    แก้ไขปัญหาด้านประสิทธิภาพที่ซับซ้อนมากขึ้น:

    "ปรับโครงสร้างลูปที่ซ้อนกันเพื่อ CalculateDiscounts ใช้อัลกอริทึมที่มีประสิทธิภาพมากขึ้นซึ่งประมวลผลการดําเนินการจํานวนมากในครั้งเดียว"

    โหมดเอเจนต์จะระบุลูปที่ซ้อนกันที่ไม่มีประสิทธิภาพและแทนที่ด้วยอัลกอริทึมที่ปรับให้เหมาะสม

  6. ตรวจสอบความถูกต้องของการเปลี่ยนแปลง

    หลังจากขั้นตอนการปรับโครงสร้างที่สําคัญแต่ละขั้นตอน ให้ตรวจสอบความถูกต้องของการเปลี่ยนแปลง:

    "เรียกใช้การทดสอบหน่วยและเกณฑ์มาตรฐานประสิทธิภาพทั้งหมดเพื่อตรวจสอบว่าโค้ดที่ปรับโครงสร้างใหม่ให้ผลลัพธ์ที่เหมือนกันพร้อมประสิทธิภาพที่ดีขึ้น"

    โหมดเอเจนต์สามารถดําเนินการทดสอบและรายงานความล้มเหลวที่ต้องแก้ไข

  7. ตรวจทานและทําซ้ํา

    หากพบปัญหา ให้ระบุวิธีการเฉพาะสําหรับการแก้ไขดังนี้

    "การทดสอบประสิทธิภาพแสดงให้เห็นถึงการปรับปรุงเพียงเล็กน้อยเท่านั้น ตรวจสอบตรรกะการแคชที่ปรับโครงสร้างใหม่และตรวจสอบให้แน่ใจว่ามีการใช้ประโยชน์จากแคชอย่างมีประสิทธิภาพ"

    โหมดตัวแทนจะวิเคราะห์ตัวชี้วัดประสิทธิภาพและทําการแก้ไขที่จําเป็นเพื่อให้บรรลุการปรับปรุงที่คาดหวัง

วิธีการที่มีโครงสร้างนี้ช่วยให้มั่นใจได้ว่าการเพิ่มประสิทธิภาพจะดําเนินการอย่างปลอดภัยและเป็นระบบ โดยมีการตรวจสอบความถูกต้องในแต่ละขั้นตอน

สถานการณ์ทั่วไปสําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา

การตรวจสอบสถานการณ์ทั่วไปสามารถช่วยให้คุณเข้าใจวิธีใช้โหมดเอเจนต์อย่างมีประสิทธิภาพสําหรับการปรับโครงสร้างประสิทธิภาพ

ปรับรูปแบบการเข้าถึงข้อมูลให้เหมาะสม (กําจัดการสืบค้น N+1)

รูปแบบการเข้าถึงข้อมูลที่ส่งผลให้คิวรี N+1 สามารถลดประสิทธิภาพได้อย่างรุนแรง การปรับโครงสร้างใหม่เพื่อดึงข้อมูลเป็นชุดสามารถปรับปรุงประสิทธิภาพได้อย่างมาก

สถานการณ์นี้สามารถแสดงได้โดยใช้ส่วนย่อยของโค้ดต่อไปนี้:

foreach (var order in orders)
{
    decimal price = GetProductPrice(order.ProductId); // database call
    order.TotalPrice = order.Quantity * price;
}

การวิเคราะห์โปรไฟล์แสดงให้เห็นว่า GetProductPrice (ซึ่งสืบค้นฐานข้อมูล) เป็นคอขวดเมื่อประมวลผลคําสั่งซื้อจํานวนมาก

คุณสามารถใช้โหมดตัวแทนเพื่อปรับโครงสร้างโค้ดใหม่โดยการค้นหาราคาผลิตภัณฑ์เป็นชุด เช่น:

พร้อมท์โหมดตัวแทน: "ปรับโค้ดนี้ให้เหมาะสมเพื่อกําจัดรูปแบบการสอบถาม N+1 โดยการค้นหาราคาผลิตภัณฑ์เป็นชุด"

ตัวแทนปรับโครงสร้างโค้ดดังนี้:

  1. รวบรวมรหัสผลิตภัณฑ์ที่ไม่ซ้ํากันทั้งหมด
  2. ดึงราคาในการเรียกฐานข้อมูลครั้งเดียว
  3. แมปราคากลับไปยังคําสั่งซื้อ

โค้ดที่ปรับโครงสร้างใหม่ควรมีลักษณะคล้ายกับข้อมูลโค้ดต่อไปนี้:

var productIds = orders.Select(o => o.ProductId).Distinct().ToList();
var priceCache = GetProductPrices(productIds).ToDictionary(p => p.ProductId, p => p.Price);

foreach (var order in orders)
{
    if (priceCache.TryGetValue(order.ProductId, out decimal price))
    {
        order.TotalPrice = order.Quantity * price;
    }
}

สังเกตการปรับปรุงต่อไปนี้:

  • โค้ดที่อัปเดตจะรวมการค้นหาราคาที่จําเป็นทั้งหมดเป็นการเรียกฐานข้อมูลเดียว
  • การจัดการข้อผิดพลาดสําหรับผลิตภัณฑ์ที่ขาดหายไปได้รับการดูแลอย่างเหมาะสม
  • โค้ดจะรักษาตรรกะทางธุรกิจเดียวกันในขณะที่ปรับปรุงประสิทธิภาพอย่างมาก

แทนที่อัลกอริทึมที่ไม่มีประสิทธิภาพ

แทนที่การค้นหาเชิงเส้นด้วยโครงสร้างข้อมูลที่ปรับให้เหมาะสมเพื่อประสิทธิภาพที่ดีขึ้น

สถานการณ์นี้สามารถแสดงได้โดยใช้ส่วนย่อยของโค้ดต่อไปนี้:

public Product FindProductByName(string name)
{
    foreach (var product in products) // O(n) linear search
    {
        if (product.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
        {
            return product;
        }
    }
    return null;
}

คุณสามารถใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดใหม่โดยใช้พจนานุกรมสําหรับการค้นหา O(1) เช่น:

พร้อมท์โหมดตัวแทน: "เพิ่มประสิทธิภาพการค้นหาผลิตภัณฑ์โดยใช้วิธีการตามพจนานุกรมสําหรับประสิทธิภาพ O(1)"

ตัวแทนปรับโครงสร้างโค้ดดังนี้:

  1. เริ่มต้นพจนานุกรมที่แม็ปชื่อผลิตภัณฑ์กับออบเจ็กต์ผลิตภัณฑ์
  2. ใช้พจนานุกรมสําหรับการค้นหา

โค้ดที่ปรับโครงสร้างใหม่ควรมีลักษณะคล้ายกับข้อมูลโค้ดต่อไปนี้:

private readonly Dictionary<string, Product> _productsByName = 
    products.ToDictionary(p => p.Name, StringComparer.OrdinalIgnoreCase);

public Product FindProductByName(string name)
{
    _productsByName.TryGetValue(name, out Product product);
    return product;
}

สังเกตการปรับปรุงต่อไปนี้:

  • ความซับซ้อนของเวลาในการค้นหาดีขึ้นจาก O(n) เป็น O(1)
  • ตรรกะการเปรียบเทียบสตริงจะถูกเก็บรักษาไว้โดยใช้ตัวเปรียบเทียบที่เหมาะสม
  • ต้นทุนการเริ่มต้นจะถูกตัดจําหน่ายในการดําเนินการค้นหาหลายรายการ

ใช้การประมวลผลแบบอะซิงโครนัส

การแปลงการดําเนินการบล็อกเป็นรูปแบบอะซิงโครนัสเพื่อความสามารถในการปรับขนาดที่ดีขึ้น การปรับโครงสร้างโค้ดแบบซิงโครนัสเพื่อใช้การเขียนโปรแกรมแบบอะซิงโครนัสสามารถปรับปรุงการตอบสนองและความสามารถในการปรับขนาดได้

สถานการณ์นี้สามารถแสดงได้โดยใช้ส่วนย่อยของโค้ดต่อไปนี้:

public void ProcessOrderNotification(Order order)
{
    var emailContent = GenerateEmailContent(order);
    Thread.Sleep(1000); // simulate email service delay
    SendEmail(order.CustomerEmail, emailContent);
}

คุณสามารถใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดใหม่โดยแปลงเป็นรูปแบบอะซิงโครนัส เช่น:

พรอมต์โหมดตัวแทน: "แปลงการประมวลผลอีเมลแบบซิงโครนัสนี้เป็นแบบอะซิงโครนัสเพื่อปรับปรุงความสามารถในการปรับขนาดและการตอบสนอง"

ตัวแทนปรับโครงสร้างโค้ดดังนี้:

  1. ทําให้วิธีการไม่ตรงกัน
  2. ใช้สําหรับ await การดําเนินการแบบอะซิงโครนัส

โค้ดที่ปรับโครงสร้างใหม่ควรมีลักษณะคล้ายกับข้อมูลโค้ดต่อไปนี้:

public async Task ProcessOrderNotificationAsync(Order order)
{
    var emailContent = await GenerateEmailContentAsync(order);
    await Task.Delay(1000); // simulate async email service delay
    await SendEmailAsync(order.CustomerEmail, emailContent);
}

สังเกตการปรับปรุงต่อไปนี้:

  • ผู้โทรทั้งหมดจะได้รับการอัปเดตเพื่อรอวิธีการแบบอะซิงโครนัส
  • รูปแบบแบบอะซิงโครนัสจะถูกนําไปใช้อย่างสม่ําเสมอตลอดห่วงโซ่การโทร
  • โทเค็นการจัดการข้อผิดพลาดและการยกเลิกจะถูกนําไปใช้อย่างเหมาะสมเมื่อจําเป็น

ข้อควรพิจารณาด้านความปลอดภัยและคุณภาพ

เมื่อใช้โหมดเอเจนต์สําหรับการปรับโครงสร้างประสิทธิภาพ ให้พิจารณาผลกระทบด้านความปลอดภัยและคุณภาพเสมอ:

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

พิจารณาแนวทางปฏิบัติด้านความปลอดภัยต่อไปนี้เมื่อปรับโครงสร้างใหม่เพื่อประสิทธิภาพ:

  • ตรวจสอบการจัดการอินพุต: ตรวจสอบให้แน่ใจว่าการเพิ่มประสิทธิภาพไม่ได้ข้ามการตรวจสอบอินพุตหรือทําให้เกิดช่องโหว่ในการแทรก

  • รักษาการตรวจสอบการอนุญาต: ตรวจสอบว่าการตรวจสอบที่เกี่ยวข้องกับความปลอดภัยไม่ได้ถูกลบออกหรืออ่อนแอลงโดยไม่ได้ตั้งใจในระหว่างการเพิ่มประสิทธิภาพ

  • แนวทางปฏิบัติในการแคชที่ปลอดภัย: ตรวจสอบให้แน่ใจว่าข้อมูลที่แคชไว้ไม่เปิดเผยข้อมูลที่ละเอียดอ่อนหรือสร้างเส้นทางการเข้าถึงที่ไม่ได้รับอนุญาต

  • รักษาเส้นทางการตรวจสอบ: ตรวจสอบให้แน่ใจว่าตรรกะการบันทึกและการตรวจสอบยังคงอยู่ระหว่างการปรับปรุงประสิทธิภาพ

มาตรฐานคุณภาพของรหัส

โดยทั่วไปธุรกิจจะใช้มาตรฐานการเข้ารหัสเฉพาะ หากคุณไม่มีแนวทาง Microsoft จะเผยแพร่คําแนะนําสําหรับแบบแผนการเข้ารหัส C# ที่คุณสามารถปฏิบัติตามได้

รักษาคุณภาพของโค้ดให้สูงโดยปฏิบัติตามหลักเกณฑ์เหล่านี้

  • ทําตามรูปแบบที่กําหนดไว้: ตรวจสอบให้แน่ใจว่าโค้ดที่ปรับโครงสร้างใหม่เป็นไปตามมาตรฐานการเข้ารหัสและรูปแบบสถาปัตยกรรมของทีมของคุณ

  • รักษาความสามารถในการอ่าน: ตรวจสอบว่าโค้ดที่ปรับให้เหมาะสมยังคงสามารถอ่านและบํารุงรักษาได้ แม้ว่าจะมีการปรับปรุงประสิทธิภาพก็ตาม

  • รักษาการจัดการข้อผิดพลาด: ตรวจสอบให้แน่ใจว่าตรรกะการจัดการข้อผิดพลาดทั้งหมดยังคงอยู่ระหว่างการเพิ่มประสิทธิภาพ

  • การเพิ่มประสิทธิภาพที่ซับซ้อนของเอกสาร: เพิ่มความคิดเห็นที่อธิบายการเพิ่มประสิทธิภาพที่ไม่ชัดเจนสําหรับผู้ดูแลในอนาคต

แนวทางความปลอดภัยของโหมดตัวแทน

โหมดเอเจนต์มีประสิทธิภาพ แต่ต้องมีการดูแลอย่างระมัดระวัง:

ก่อนการปรับโครงสร้างใหม่

  • ทํางานในสาขาคุณลักษณะเสมอ
  • ตรวจสอบให้แน่ใจว่ามีความครอบคลุมการทดสอบที่ครอบคลุม
  • ตรวจสอบแผนการเพิ่มประสิทธิภาพจากการวิเคราะห์โหมดถาม
  • ทําความเข้าใจลักษณะการทํางานและตรรกะทางธุรกิจ

ระหว่างการปรับโครงสร้าง

  • ทําการเปลี่ยนแปลงที่เพิ่มขึ้นแทนที่จะเป็นการเปลี่ยนแปลงครั้งใหญ่
  • ตรวจสอบความถูกต้องของแต่ละขั้นตอนการเพิ่มประสิทธิภาพก่อนที่จะดําเนินการต่อไป
  • ตรวจสอบโค้ดที่สร้างขึ้นเพื่อความถูกต้องและการปรับปรุงประสิทธิภาพ
  • ทดสอบบ่อยๆ เพื่อจับการถดถอยตั้งแต่เนิ่นๆ

หลังจากปรับโครงสร้างใหม่

  • เรียกใช้เกณฑ์มาตรฐานประสิทธิภาพที่ครอบคลุมรวมถึงการเปรียบเทียบพื้นฐาน
  • ดําเนินการตรวจสอบโค้ดกับสมาชิกในทีม
  • ตรวจสอบคุณลักษณะด้านความปลอดภัยและฟังก์ชันการทํางาน
  • อัปเดตเอกสารประกอบเพื่อสะท้อนถึงการปรับปรุงประสิทธิภาพ

ปฏิบัติต่อโหมดเอเจนต์ในฐานะผู้ช่วยที่ทรงพลัง

แม้ว่าโหมดเอเจนต์จะสามารถเพิ่มประสิทธิภาพที่ซับซ้อนได้ แต่ก็ต้องมีการกํากับดูแลของมนุษย์:

  • ตรวจสอบการเปลี่ยนแปลงทั้งหมดก่อนยอมรับ
  • ตรวจสอบว่าการปรับปรุงประสิทธิภาพสามารถวัดผลได้และมีนัยสําคัญ
  • ตรวจสอบให้แน่ใจว่าตรงตามข้อกําหนดด้านความปลอดภัยและฟังก์ชันการทํางาน
  • ทดสอบอย่างละเอียดเพื่อจับการเปลี่ยนแปลงพฤติกรรมที่ละเอียดอ่อน

โหมดเอเจนต์ช่วยเร่งการเพิ่มประสิทธิภาพการทํางาน แต่ไม่ได้แทนที่ความจําเป็นในการตรวจสอบ การทดสอบ และการวัดผลอย่างรอบคอบ

Summary

การใช้โหมด Agent ของ GitHub Copilot ช่วยให้นักพัฒนาสามารถปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ําได้อย่างมีประสิทธิภาพในขณะที่ยังคงคุณภาพและฟังก์ชันการทํางานของโค้ด ด้วยการรวมข้อมูลเชิงลึกเชิงวิเคราะห์จากโหมดถามเข้ากับความสามารถในการดําเนินการของโหมดตัวแทน คุณจะสามารถปรับปรุงประสิทธิภาพ ความสามารถในการปรับขนาด และประสิทธิภาพของแอปพลิเคชันได้อย่างเป็นระบบ กุญแจสู่ความสําเร็จคือการให้คําแนะนําที่ชัดเจน รักษาแนวทางปฏิบัติด้านความปลอดภัย และตรวจสอบการเปลี่ยนแปลงทั้งหมดอย่างละเอียดผ่านการทดสอบและการวัดประสิทธิภาพที่ครอบคลุม