รีแฟคเตอร์โค้ดโดยใช้โหมดแชท GitHub Copilot

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

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

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

สําคัญ

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

ใช้ "ขออนุญาต" เพื่อปรับโครงสร้างโค้ด

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

  1. เปิดมุมมอง Chat แล้วเลือกถาม

  2. เพิ่มบริบทลงในการสนทนา

    Ask รองรับผู้เข้าร่วมการแชท คําสั่งทับ และตัวแปรแชท คุณสามารถเพิ่ม @workspace ผู้เข้าร่วมแชทหรือ #codebase ในแชทเพื่อให้บริบทพร้อมกับไฟล์หรือโฟลเดอร์

  3. ถามคําถามที่ช่วยให้คุณเข้าใจโค้ดที่คุณต้องการปรับโครงสร้างใหม่และการเปลี่ยนแปลงที่คุณต้องการทํา

    ตัวอย่างเช่น คุณอาจขอให้ GitHub Copilot ช่วยคุณทําความเข้าใจรหัสการตรวจสอบสิทธิ์ที่มีอยู่ของคุณวิธีอัปเดตวิธีการปัจจุบันโดยใช้ OAuth

  4. สร้างพร้อมท์ที่อธิบายการอัปเดตที่คุณต้องการนําไปใช้

    พร้อมท์ของคุณควรมีคําอธิบายของคุณลักษณะโค้ดที่คุณต้องการใช้ เช่น:

    @workspace I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files. Explain how to update the EnumHelper class using dictionaries and show me the updated code.
    
  5. ตรวจสอบโค้ดที่แนะนําในมุมมองแชท

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

  6. เมื่อต้องการใช้โค้ดที่แนะนํา คุณสามารถวางตัวชี้เมาส์ไว้เหนือส่วนย่อยของโค้ด แล้วเลือกระหว่างตัวเลือก นําไปใช้แทรก และ คัดลอก

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

ใช้แผนเพื่อปรับโครงสร้างโค้ด

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

เคล็ดลับ

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

  1. เปิดมุมมอง Chat แล้วเลือก "วางแผน"

  2. เพิ่มบริบทลงในการสนทนา

    ระบุบริบทของพื้นที่ทํางานโดยใช้ #codebase และโดยการเพิ่มไฟล์ลงในแชท

  3. สร้างพร้อมท์ที่อธิบายคุณลักษณะโค้ดที่คุณต้องการนําไปใช้

    พร้อมท์ของคุณควรมีคําอธิบายของคุณลักษณะโค้ดที่คุณต้องการใช้ เช่น:

    
    #codebase I need to refactor the `EnumHelper` class and remove any code that uses reflection. Use static dictionaries to supply enum description attributes. Use a separate dictionary for each enum. The dictionaries should use values from the `LoanExtensionStatus.cs`, `LoanReturnStatus.cs`, and `MembershipRenewalStatus.cs` files.
    
    
  4. ตรวจสอบแผนการใช้งานที่มีโครงสร้างที่ GitHub Copilot สร้างขึ้น

    ตัวแทนแผนจะสร้างแผนทีละขั้นตอนที่คุณสามารถตรวจทานได้ก่อนที่จะทําการเปลี่ยนแปลงโค้ดใดๆ

  5. เมื่อแผนดูถูกต้อง ให้ส่งต่อไปยังตัวแทนการใช้งานเพื่อดําเนินการ

    คุณสามารถส่งต่อแผนให้กับเอเจนต์เพื่อนําการเปลี่ยนแปลงไปใช้กับฐานรหัสของคุณ

  6. ตรวจสอบการแก้ไขที่แนะนําในตัวแก้ไขโค้ด

  7. ยอมรับหรือละทิ้งการแก้ไขที่แนะนํา

    คุณสามารถนําทางผ่านการแก้ไขโดยใช้ลูกศรขึ้นและลง คุณสามารถเก็บ (ยอมรับ) หรือเลิกทํา (ละทิ้ง) การแก้ไขที่แนะนําทีละรายการได้โดยใช้เมนูป็อปอัพที่ปรากฏเหนือการแก้ไขแต่ละรายการ คุณยังสามารถยอมรับหรือปฏิเสธการแก้ไขทั้งหมดพร้อมกันได้โดยใช้ปุ่ม "เก็บ " และ "เลิกทํา " ที่ด้านล่างของแท็บเครื่องมือแก้ไข (หรือมุมมอง Chat)

  8. ทดสอบโค้ดที่สร้างขึ้นใหม่ของคุณเพื่อให้แน่ใจว่าทํางานโดยไม่มีข้อผิดพลาดและสร้างผลลัพธ์ที่คาดหวังไว้

ใช้เอเจนต์เพื่อปรับโครงสร้างโค้ด

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

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

สําคัญ

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

  1. เปิดมุมมอง แชท และเลือก ตัวแทน

  2. สร้างพร้อมท์ที่อธิบายงานที่คุณต้องการให้ GitHub Copilot ดําเนินการ

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

    เช่น:

    
    Review the LINQ code used in the JsonData and JsonLoanRepository classes. Refactor the methods in the JsonPatronRepository class using LINQ queries. Ensure that existing code functionality is maintained.
    
    
  3. เอเจนต์อาจเรียกใช้เครื่องมือหลายอย่างเพื่อทํางานต่างๆ ให้สําเร็จ อีกทางหนึ่งคือเลือกไอคอนเครื่องมือเพื่อกําหนดค่าว่าเครื่องมือใดที่สามารถใช้ในการตอบสนองต่อคําขอของคุณ

  4. ยืนยันการเรียกใช้เครื่องมือและคําสั่งเทอร์มินัล

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

  5. GitHub Copilot ตรวจพบปัญหาและปัญหาในการแก้ไขโค้ดและคําสั่งเทอร์มินัล และจะทําซ้ําและดําเนินการเพื่อแก้ไข

    สําคัญ

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

  6. ตรวจทานการแก้ไขที่แนะนํา และยอมรับหรือละทิ้งการแก้ไขที่แนะนํา

  7. ทดสอบโค้ด refactored ของคุณเพื่อให้แน่ใจว่าจะสร้างผลลัพธ์ที่คาดหวังไว้

    เอเจนต์ควรแก้ไขปัญหาด้วยตัวเอง แต่คุณควรทดสอบโค้ดเพื่อให้แน่ใจว่าทํางานได้ตามที่คาดไว้

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

เมื่อใดควรเลือกตัวแทนมากกว่าแผน

พิจารณาเกณฑ์ต่อไปนี้เพื่อเลือกระหว่างแผนและตัวแทน:

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

สรุป

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