ปรับโครงสร้างฟังก์ชันขนาดใหญ่โดยใช้โหมด Agent ของ GitHub Copilot

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

การใช้โหมดตัวแทนของ GitHub Copilot ก็เหมือนกับการมีผู้ช่วยที่คอยช่วยคุณพัฒนาและบํารุงรักษาโค้ดของคุณเสมอ

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

แนวทางปฏิบัติที่ดีที่สุด

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

  • แบ่งการปรับโครงสร้างใหม่ออกเป็นขั้นตอนเล็กๆ
  • ตรวจสอบการเปลี่ยนแปลงแต่ละรายการอย่างรอบคอบ
  • รวบรวมและทดสอบหลังจากแต่ละขั้นตอน

คําสั่งการปรับโครงสร้างทั่วไป

ต่อไปนี้เป็นตัวอย่างข้อความแจ้งสําหรับงานการปรับโครงสร้างทั่วไป:

  • "แยกรหัสการตรวจสอบที่เลือกลงในเมธอดส่วนตัวใหม่ที่มีชื่อ ValidateOrder ซึ่งใช้พารามิเตอร์ Order และส่งคืน bool ตรวจสอบให้แน่ใจว่าตรรกะการตรวจสอบความถูกต้องทั้งหมดถูกย้ายและไซต์การเรียกเดิมใช้ค่าที่ส่งคืนอย่างเหมาะสม"
  • "ตรวจสอบรหัสที่เลือก ระบุและแยกตรรกะการคํานวณภาษีที่ซ้ํากันทั้งหมดลงในวิธีการ CalculateTax คงที่ส่วนตัวใหม่ที่ใช้พารามิเตอร์ที่จําเป็น (จํานวนเงิน taxRate ภูมิภาค) และส่งคืนจํานวนภาษีที่คํานวณได้ แทนที่การคํานวณที่ซ้ํากันทั้งหมดด้วยการเรียกใช้เมธอดนี้"
  • "ตรวจสอบรหัสที่เลือก แปลงห่วงโซ่ if/else นี้เป็นนิพจน์สวิตช์ที่ทันสมัย เพื่อให้แน่ใจว่าครอบคลุมทุกกรณีและตรรกะยังคงเท่ากัน ใช้การจับคู่รูปแบบตามความเหมาะสมและรักษาประเภทการส่งคืนเดิม"
  • "ตรวจสอบรหัสที่เลือก แยกการกําหนดราคาและการคํานวณทั้งหมดลงในวิธีการ ComputeTotals ส่วนตัวใหม่ที่ใช้พารามิเตอร์ Order ทําการคํานวณทั้งหมด และอัปเดตคุณสมบัติทั้งหมดของคําสั่งซื้อ ตรวจสอบให้แน่ใจว่าไม่มีตรรกะการคํานวณหลงเหลืออยู่ในวิธีการเดิม"

เวิร์กโฟลว์ตัวอย่าง

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

คุณอาจใช้ขั้นตอนต่อไปนี้เพื่อปรับโครงสร้างฟังก์ชัน:

  1. แยกส่วนแรก:

    "แยกการตรวจสอบอินพุตที่ด้านบนของ ProcessOrder เป็นวิธีการ ValidateOrder(order) ใหม่ที่ส่งคืน bool"

  2. แยกส่วนที่สอง:

    "ย้ายการคํานวณราคาไปสู่วิธีการ ComputeTotals(order) ใหม่ที่อัปเดต order.Total"

  3. จัดการตรรกะที่เหลืออยู่:

    แยกตรรกะการบันทึกและการแจ้งเตือนในทํานองเดียวกัน หรือปล่อยให้อยู่ในฟังก์ชันหลักหากตอนนี้สั้นและชัดเจน

  4. เก็บกวาด:

    เปลี่ยนชื่อตัวแปร ลบโค้ดที่ไม่ได้ใช้ และรับรองความสอดคล้องกัน

ใช้คําแนะนําโหมดถาม

ใช้รายละเอียดของโหมดถามเพื่อแนะนําโหมดเอเจนท์:

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

เคล็ดลับ

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

สิ่งที่ควรระวังระหว่างการตรวจสอบ

ตรวจสอบการเปลี่ยนแปลงที่ทําโดยตัวแทนเสมอ พิจารณารายการตรวจสอบต่อไปนี้:

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

จัดการผลลัพธ์ที่ไม่คาดคิด

เมื่อตัวแทนสร้างผลลัพธ์ที่ไม่เป็นไปตามที่คุณคาดไว้:

  • เลิกทําการเปลี่ยนแปลงหรือแปลงกลับไฟล์
  • ลองทําตามขั้นตอนที่เล็กกว่าหรือข้อความแจ้งที่แม่นยํายิ่งขึ้น
  • แก้ไขปัญหาเล็กน้อยด้วยตนเองหรือขอให้ Copilot แก้ไข

Summary

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