ปรับโครงสร้างโค้ดประสิทธิภาพต่ําโดยใช้โหมดตัวแทนของ GitHub Copilot
นักพัฒนาสามารถใช้โหมด Agent ของ GitHub Copilot เพื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ําได้อย่างปลอดภัย
Note
ใช้โหมดถามของ GitHub Copilot เพื่อวิเคราะห์ปัญหาคอขวดด้านประสิทธิภาพและกําหนดแผนการเพิ่มประสิทธิภาพก่อนที่จะใช้โหมดตัวแทนเพื่อดําเนินการเปลี่ยนแปลง วิธีการนี้ช่วยให้มั่นใจได้ว่าการปรับโครงสร้างใหม่จะดําเนินการอย่างรอบคอบและปลอดภัย
โหมดเอเจนท์คืออะไร?
โหมดเอเจนต์ของ GitHub Copilot ทํางานโดยอัตโนมัติเพื่อดําเนินการฟื้นฟูงานที่ซับซ้อนทั่วทั้งฐานโค้ดของคุณ ซึ่งแตกต่างจากโหมดถาม ซึ่งให้คําแนะนําและคําแนะนําในแผงแชท โหมดตัวแทนจะใช้การอัปเดตที่แนะนําเป็นการแก้ไขโดยตรงในไฟล์โค้ดของคุณ
โหมดเอเจนต์สามารถแก้ไขไฟล์ ใช้การเปลี่ยนแปลง เรียกใช้การทดสอบ และดําเนินการคําสั่งตามคําแนะนําของคุณ เข้าใจบริบทของโครงการและสามารถรักษาความสอดคล้องกันในหลายไฟล์ เพื่อให้มั่นใจว่าการเปลี่ยนแปลงการปรับโครงสร้างใหม่จะไม่ทําลายฟังก์ชันที่มีอยู่
โหมดเอเจนต์เหมาะอย่างยิ่งสําหรับการใช้กลยุทธ์การเพิ่มประสิทธิภาพแบบหลายขั้นตอนที่ต้องมีการจัดการการขึ้นต่อกัน โหมดตัวแทนจะกําหนดบริบทที่จําเป็นโดยอัตโนมัติและดําเนินการตามขั้นตอนที่จําเป็นเพื่อให้บรรลุเป้าหมายการปรับปรุงประสิทธิภาพของคุณ
ปรับโครงสร้างโค้ดประสิทธิภาพต่ําโดยใช้โหมดเอเจนต์
คุณสามารถใช้โหมดตัวแทนเพื่อใช้กลยุทธ์การเพิ่มประสิทธิภาพที่ระบุระหว่างการวิเคราะห์โหมดถามของคุณ โหมดเอเจนต์สามารถดําเนินการปรับโครงสร้างหลายขั้นตอนโดยอัตโนมัติในขณะที่ยังคงรักษาฟังก์ชันดั้งเดิมและปรับปรุงประสิทธิภาพของโค้ด
กลยุทธ์สําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา
ต่อไปนี้เป็นกลยุทธ์หลักสําหรับการใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ํา:
ปรับโครงสร้างข้อมูลให้เหมาะสม: สั่งให้โหมดเอเจนต์แทนที่โครงสร้างข้อมูลที่ไม่มีประสิทธิภาพ เช่น การค้นหาเชิงเส้นด้วยทางเลือกที่ปรับให้เหมาะสม เช่น พจนานุกรมหรือชุดแฮช
ใช้กลไกการแคช: ให้โหมดเอเจนต์เพิ่มการแคชอัจฉริยะเพื่อหลีกเลี่ยงการคํานวณที่ซ้ําซ้อนหรือการดําเนินการที่มีราคาแพง
กําจัดรูปแบบการสืบค้น N+1: ใช้โหมดตัวแทนเพื่อรวมการสืบค้นหรือการดําเนินการหลายรายการไว้ในการดําเนินการชุดงานเพื่อประสิทธิภาพที่ดีขึ้น
เพิ่มการประมวลผลแบบอะซิงโครนัส: ให้โหมดตัวแทนแปลงการดําเนินการบล็อกเป็นรูปแบบอะซิงโครนัสที่ปรับปรุงความสามารถในการปรับขนาดและการตอบสนอง
ลดความซับซ้อนของอัลกอริทึม: มีอัลกอริทึมการปรับโครงสร้างโหมดเอเจนต์เพื่อใช้วิธีการที่มีประสิทธิภาพมากขึ้นด้วยความซับซ้อนของเวลาที่ดีขึ้น
มั่นใจในความปลอดภัย: สั่งโหมดเอเจนต์เพื่อตรวจสอบว่าการเพิ่มประสิทธิภาพไม่ได้ทําให้เกิดช่องโหว่ด้านความปลอดภัยหรือข้ามการตรวจสอบความปลอดภัยที่มีอยู่
รักษาฟังก์ชันการทํางาน: ใช้โหมดตัวแทนเพื่อรักษาตรรกะทางธุรกิจและการจัดการข้อผิดพลาดที่มีอยู่ทั้งหมดในขณะที่ปรับปรุงลักษณะการทํางาน
โหมดเอเจนต์พร้อมท์สําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา
เมื่อใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ํา ข้อความแจ้งของคุณควรมีความเฉพาะเจาะจง สามารถดําเนินการได้ และรวมถึงข้อควรพิจารณาด้านความปลอดภัย ต่อไปนี้คือตัวอย่างบางส่วนของข้อความภาษาธรรมชาติที่คุณสามารถรวมไว้ในพร้อมท์ของคุณเมื่อปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ํา:
การเตรียมการและความปลอดภัย
- "ก่อนปรับโครงสร้างใหม่ ให้สร้างการทดสอบหน่วยที่ตรวจสอบพฤติกรรมปัจจุบันของวิธีการที่มีความสําคัญต่อประสิทธิภาพที่เลือก"
- "วิเคราะห์โค้ดที่เลือกเพื่อหาผลกระทบด้านความปลอดภัย และตรวจสอบให้แน่ใจว่าการปรับโครงสร้างใหม่รักษาการตรวจสอบความปลอดภัยทั้งหมด"
- "สร้างสาขาสํารองและเรียกใช้การทดสอบที่มีอยู่ก่อนที่จะทําการเพิ่มประสิทธิภาพใดๆ กับโค้ดที่เลือก"
การดําเนินการเพิ่มประสิทธิภาพขั้นพื้นฐาน
- "ปรับโครงสร้างวิธีการที่เลือกเพื่อใช้การค้นหาพจนานุกรมแทนการค้นหาเชิงเส้นเพื่อปรับปรุงประสิทธิภาพ"
- "เพิ่มประสิทธิภาพโค้ดที่เลือกโดยใช้กลไกการแคชสําหรับการดําเนินการที่มีราคาแพง"
- "แทนที่รูปแบบคิวรี N+1 ที่เลือกด้วยการดําเนินการแบบแบทช์เพื่อลดการเรียกฐานข้อมูล"
- "แปลงการดําเนินการบล็อกที่เลือกเป็นรูปแบบอะซิงโครนัสเพื่อความสามารถในการปรับขนาดที่ดีขึ้น"
รูปแบบการเพิ่มประสิทธิภาพขั้นสูง
- "ปรับโครงสร้างโค้ดที่เลือกโดยใช้การประมวลผลแบบขนานเพื่อปรับปรุงปริมาณงานในขณะที่ยังคงความปลอดภัยของเธรด"
- "ปรับอัลกอริทึมที่เลือกให้เหมาะสมเพื่อลดความซับซ้อนของเวลาจาก O(n²) เป็น O(n log n) หรือดีกว่า"
- "แทนที่โครงสร้างข้อมูลที่ไม่มีประสิทธิภาพที่เลือกด้วยคอลเลกชันที่ปรับให้เหมาะสมเพื่อการค้นหาที่รวดเร็วขึ้น"
- "ปรับโครงสร้างโค้ดที่เลือกเพื่อใช้รูปแบบการโหลดแบบขี้เกียจเพื่อปรับปรุงประสิทธิภาพการเริ่มต้น"
คุณภาพและการตรวจสอบความถูกต้อง
- "หลังจากปรับโครงสร้างใหม่ ให้เรียกใช้การทดสอบทั้งหมดและตรวจสอบว่าประสิทธิภาพดีขึ้นในขณะที่ยังคงฟังก์ชันการทํางานเหมือนเดิม"
- "ตรวจสอบให้แน่ใจว่าโค้ดที่ปรับโครงสร้างใหม่เป็นไปตามข้อตกลงการเข้ารหัส C# ของ Microsoft และแนวทางปฏิบัติที่ดีที่สุดด้านประสิทธิภาพ"
- "ตรวจสอบว่าโค้ดที่ปรับโครงสร้างใหม่มีลักษณะความปลอดภัยเหมือนกับการใช้งานดั้งเดิม"
- "สร้างเกณฑ์มาตรฐานประสิทธิภาพเพื่อวัดการปรับปรุงที่ทําได้ผ่านการปรับโครงสร้างใหม่"
เวิร์กโฟลว์โหมดเอเจนต์สําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา
เวิร์กโฟลว์ต่อไปนี้สาธิตวิธีใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดประสิทธิภาพต่ําอย่างปลอดภัย:
เตรียมพื้นที่ทํางานของคุณ
ตรวจสอบให้แน่ใจว่าคุณกําลังทํางานในสาขา git ที่สะอาดและงานที่มีอยู่ได้รับการยอมรับ การทํางานในสาขาที่สะอาดช่วยให้คุณสามารถย้อนกลับการเปลี่ยนแปลงได้อย่างง่ายดายหากจําเป็น ไปที่ไฟล์ที่มีปัญหาคอขวดด้านประสิทธิภาพที่คุณวิเคราะห์ในโหมดถาม
ตั้งค่ามาตรการความปลอดภัย
ก่อนทําการเปลี่ยนแปลง ให้ขอให้โหมดเอเจนต์สร้างหรือเรียกใช้การทดสอบหน่วยที่มีอยู่:
"สร้างการทดสอบหน่วยที่ครอบคลุมสําหรับ
ProcessOrdersวิธีการเพื่อตรวจสอบพฤติกรรมปัจจุบันก่อนที่จะปรับโครงสร้างใหม่เพื่อประสิทธิภาพ"ขั้นตอนนี้ช่วยให้แน่ใจว่าคุณมีตาข่ายความปลอดภัยในการตรวจสอบว่าการปรับโครงสร้างใหม่ของคุณรักษาฟังก์ชันการทํางานไว้
เริ่มต้นด้วยขั้นตอนการเพิ่มประสิทธิภาพง่ายๆ
เริ่มต้นด้วยการเปลี่ยนแปลงที่มีความเสี่ยงต่ํา เช่น การแทนที่การค้นหาเชิงเส้น
"ปรับ
GetProductByIdโครงสร้างวิธีการโดยแทนที่การค้นหาเชิงเส้นด้วยการค้นหาพจนานุกรมสําหรับประสิทธิภาพ O(1) แทน O(n)"โหมดเอเจนต์จะวิเคราะห์โค้ดและใช้วิธีการตามพจนานุกรม ซึ่งช่วยปรับปรุงประสิทธิภาพการค้นหาได้อย่างมาก
ใช้กลยุทธ์การแคช
ดําเนินการต่อด้วยการเพิ่มประสิทธิภาพการแคช:
"เพิ่มการแคชอัจฉริยะให้กับ
GetExchangeRateเมธอดเพื่อหลีกเลี่ยงการเรียก API ที่ซ้ําซ้อนสําหรับสกุลเงินเดียวกันภายในระยะเวลาอันสั้น"โหมดเอเจนต์สร้างตรรกะการแคชที่เหมาะสม ซึ่งช่วยลดการเรียกใช้บริการภายนอกที่มีราคาแพง
ปรับความซับซ้อนของอัลกอริทึมให้เหมาะสม
แก้ไขปัญหาด้านประสิทธิภาพที่ซับซ้อนมากขึ้น:
"ปรับโครงสร้างลูปที่ซ้อนกันเพื่อ
CalculateDiscountsใช้อัลกอริทึมที่มีประสิทธิภาพมากขึ้นซึ่งประมวลผลการดําเนินการจํานวนมากในครั้งเดียว"โหมดเอเจนต์จะระบุลูปที่ซ้อนกันที่ไม่มีประสิทธิภาพและแทนที่ด้วยอัลกอริทึมที่ปรับให้เหมาะสม
ตรวจสอบความถูกต้องของการเปลี่ยนแปลง
หลังจากขั้นตอนการปรับโครงสร้างที่สําคัญแต่ละขั้นตอน ให้ตรวจสอบความถูกต้องของการเปลี่ยนแปลง:
"เรียกใช้การทดสอบหน่วยและเกณฑ์มาตรฐานประสิทธิภาพทั้งหมดเพื่อตรวจสอบว่าโค้ดที่ปรับโครงสร้างใหม่ให้ผลลัพธ์ที่เหมือนกันพร้อมประสิทธิภาพที่ดีขึ้น"
โหมดเอเจนต์สามารถดําเนินการทดสอบและรายงานความล้มเหลวที่ต้องแก้ไข
ตรวจทานและทําซ้ํา
หากพบปัญหา ให้ระบุวิธีการเฉพาะสําหรับการแก้ไขดังนี้
"การทดสอบประสิทธิภาพแสดงให้เห็นถึงการปรับปรุงเพียงเล็กน้อยเท่านั้น ตรวจสอบตรรกะการแคชที่ปรับโครงสร้างใหม่และตรวจสอบให้แน่ใจว่ามีการใช้ประโยชน์จากแคชอย่างมีประสิทธิภาพ"
โหมดตัวแทนจะวิเคราะห์ตัวชี้วัดประสิทธิภาพและทําการแก้ไขที่จําเป็นเพื่อให้บรรลุการปรับปรุงที่คาดหวัง
วิธีการที่มีโครงสร้างนี้ช่วยให้มั่นใจได้ว่าการเพิ่มประสิทธิภาพจะดําเนินการอย่างปลอดภัยและเป็นระบบ โดยมีการตรวจสอบความถูกต้องในแต่ละขั้นตอน
สถานการณ์ทั่วไปสําหรับการปรับโครงสร้างโค้ดประสิทธิภาพต่ํา
การตรวจสอบสถานการณ์ทั่วไปสามารถช่วยให้คุณเข้าใจวิธีใช้โหมดเอเจนต์อย่างมีประสิทธิภาพสําหรับการปรับโครงสร้างประสิทธิภาพ
ปรับรูปแบบการเข้าถึงข้อมูลให้เหมาะสม (กําจัดการสืบค้น N+1)
รูปแบบการเข้าถึงข้อมูลที่ส่งผลให้คิวรี N+1 สามารถลดประสิทธิภาพได้อย่างรุนแรง การปรับโครงสร้างใหม่เพื่อดึงข้อมูลเป็นชุดสามารถปรับปรุงประสิทธิภาพได้อย่างมาก
สถานการณ์นี้สามารถแสดงได้โดยใช้ส่วนย่อยของโค้ดต่อไปนี้:
foreach (var order in orders)
{
decimal price = GetProductPrice(order.ProductId); // database call
order.TotalPrice = order.Quantity * price;
}
การวิเคราะห์โปรไฟล์แสดงให้เห็นว่า GetProductPrice (ซึ่งสืบค้นฐานข้อมูล) เป็นคอขวดเมื่อประมวลผลคําสั่งซื้อจํานวนมาก
คุณสามารถใช้โหมดตัวแทนเพื่อปรับโครงสร้างโค้ดใหม่โดยการค้นหาราคาผลิตภัณฑ์เป็นชุด เช่น:
พร้อมท์โหมดตัวแทน: "ปรับโค้ดนี้ให้เหมาะสมเพื่อกําจัดรูปแบบการสอบถาม N+1 โดยการค้นหาราคาผลิตภัณฑ์เป็นชุด"
ตัวแทนปรับโครงสร้างโค้ดดังนี้:
- รวบรวมรหัสผลิตภัณฑ์ที่ไม่ซ้ํากันทั้งหมด
- ดึงราคาในการเรียกฐานข้อมูลครั้งเดียว
- แมปราคากลับไปยังคําสั่งซื้อ
โค้ดที่ปรับโครงสร้างใหม่ควรมีลักษณะคล้ายกับข้อมูลโค้ดต่อไปนี้:
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)"
ตัวแทนปรับโครงสร้างโค้ดดังนี้:
- เริ่มต้นพจนานุกรมที่แม็ปชื่อผลิตภัณฑ์กับออบเจ็กต์ผลิตภัณฑ์
- ใช้พจนานุกรมสําหรับการค้นหา
โค้ดที่ปรับโครงสร้างใหม่ควรมีลักษณะคล้ายกับข้อมูลโค้ดต่อไปนี้:
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);
}
คุณสามารถใช้โหมดเอเจนต์เพื่อปรับโครงสร้างโค้ดใหม่โดยแปลงเป็นรูปแบบอะซิงโครนัส เช่น:
พรอมต์โหมดตัวแทน: "แปลงการประมวลผลอีเมลแบบซิงโครนัสนี้เป็นแบบอะซิงโครนัสเพื่อปรับปรุงความสามารถในการปรับขนาดและการตอบสนอง"
ตัวแทนปรับโครงสร้างโค้ดดังนี้:
- ทําให้วิธีการไม่ตรงกัน
- ใช้สําหรับ
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 ช่วยให้นักพัฒนาสามารถปรับโครงสร้างโค้ดที่มีประสิทธิภาพต่ําได้อย่างมีประสิทธิภาพในขณะที่ยังคงคุณภาพและฟังก์ชันการทํางานของโค้ด ด้วยการรวมข้อมูลเชิงลึกเชิงวิเคราะห์จากโหมดถามเข้ากับความสามารถในการดําเนินการของโหมดตัวแทน คุณจะสามารถปรับปรุงประสิทธิภาพ ความสามารถในการปรับขนาด และประสิทธิภาพของแอปพลิเคชันได้อย่างเป็นระบบ กุญแจสู่ความสําเร็จคือการให้คําแนะนําที่ชัดเจน รักษาแนวทางปฏิบัติด้านความปลอดภัย และตรวจสอบการเปลี่ยนแปลงทั้งหมดอย่างละเอียดผ่านการทดสอบและการวัดประสิทธิภาพที่ครอบคลุม