รับประโยชน์สูงสุดจาก GitHub Copilot

Dec 01 2022
ผู้ช่วยเขียนโค้ด AI กำลังเป็นที่นิยมในขณะนี้ คุณจะได้รับประโยชน์สูงสุดจากพวกเขาอย่างไร?
เมื่อ GitHub Copilot เปิดตัว ฉันลองใช้ทันที การอ้างสิทธิ์ดูเหมือนจะดีเกินจริง

เมื่อGitHub Copilotเปิดตัว ฉันลองใช้ทันที การอ้างสิทธิ์ดูเหมือนจะดีเกินจริง

สิ่งที่ฉันพบตรงกันข้าม – มันดีกว่าโฆษณา ฉันทึ่งกับมันมากจนฉัน... ไม่แม้แต่จะทวีตถึงมัน ฉันคิดว่ามันเป็นข้อได้เปรียบที่ยิ่งใหญ่เกินไปที่จะแจกฟรี!

ฉันพบว่า Copilot สามารถสร้างผลกระทบได้มากถึงขนาดที่เมื่อเราเลิกจ้างทีมในปี 2021 ฉันได้ทุ่มเทส่วนทั้งหมดเกี่ยวกับการนำเสนอ CTO ของฉันให้กับ Copilot การใช้ Copilot มีความใกล้เคียงกับ "จำเป็น" มากพอๆ กับเครื่องมือใดๆ ที่ Infinite Red มันเป็นตัวเปลี่ยนเกมครั้งใหญ่

Copilot ทำอะไรกับขั้นตอนการเข้ารหัสของฉัน

ฉันเขียนโค้ดค่อนข้างเร็วในสถานการณ์ปกติ Copilot เพิ่มความเร็วของฉันเป็นสองเท่า

ฉันเป็นโรคสมาธิสั้นเล็กน้อย และปัญหาที่ยิ่งใหญ่ที่สุดอย่างหนึ่งของฉันคือการมีสมาธิจดจ่อ เมื่อฉันเข้าสู่ "สถานะการไหล" ฉันจะผ่านพ้นไม่ได้ ฉันไม่คิดว่าฉันอยู่คนเดียวที่ต้องดิ้นรนกับสิ่งนี้ แต่ถึงคุณไม่ทำ คุณก็ยังอาจมีช่วงเวลาที่คุณรู้สึก “เสียด้าย” และต้องการการกระตุ้นเตือน

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

ข้อจำกัดของ Copilot

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

เรามาพูดถึงวิธีการใช้ประโยชน์สูงสุดจาก Copilot

การเขียนความคิดเห็นชั้นนำสำหรับบริบท

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

ความคิดเห็นที่ดีกว่าจะให้ข้อมูลที่ดีขึ้นแก่ Copilot:

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

ในกรณีนี้ การเพิ่ม "ฟังก์ชันที่พิมพ์" จะแนะนำประเภทให้กับอาร์กิวเมนต์ของฟังก์ชัน

ความคิดเห็นเหล่านี้ไม่จำเป็นสำหรับผู้อ่านโค้ดที่เป็นมนุษย์ แม้ว่าจะสามารถอ่านได้ตามที่เป็นอยู่ ฉันมักจะกลับไปปรับแต่งให้เหมาะกับผู้อ่านเสมอหลังจากที่ฉันทำเสร็จแล้ว

เรียนรู้แป้นพิมพ์ลัด

หากคุณใช้ VS Code คุณสามารถดูรายการทางลัดได้ ที่นี่

  • ยอมรับคำแนะนำแบบอินไลน์:Tab
  • ปิดคำแนะนำแบบอินไลน์:Esc
  • แสดงคำแนะนำแบบอินไลน์ถัดไป:Option (⌥)+]
  • แสดงคำแนะนำแบบอินไลน์ก่อนหน้า:Option (⌥)+[
  • ทริกเกอร์คำแนะนำแบบอินไลน์:Option (⌥)+\
  • เปิด GitHub Copilot:Ctrl+Return

สิ่งที่ฉันใช้บ่อย ที่สุดนอกเหนือจากTab/ EscคือOption+[และ ]วิธีนี้ช่วยให้ฉันหมุนเวียนคำแนะนำจนกว่าจะได้คำแนะนำที่มีประโยชน์ที่สุด

ให้โครงสร้าง Copilot ทำงานด้วย

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

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

Copilot สามารถช่วยด้วยคำสั่ง CLI

หากคุณเป็นเหมือนฉันและจำคำสั่งคอมไพล์ไม่ได้ Copilot ก็สามารถช่วยได้เช่นกัน

ในแท็บว่าง ให้เขียนดังนี้:

มันไม่สมบูรณ์แบบ แต่มันจะให้เบาะแสที่เพียงพอแก่คุณ!

Copilot เก่งในงานซ้ำๆ เช่น การทดสอบการเขียน

หนึ่งในช่วงเวลาที่เหลือเชื่อที่สุดของฉันในการสตรีมคือตอนที่ Copilot เขียนการทดสอบที่แม่นยำสำหรับฟีเจอร์ที่ค่อนข้างซับซ้อนที่ฉันกำลังสร้าง ลองดู (เวลาประทับ 2:23:00):

Copilot สามารถเขียนความคิดเห็นให้คุณได้เช่นกัน!

ในขณะที่การเขียนความคิดเห็นสามารถช่วย Copilot ในการเขียนโค้ดได้ การเขียนโค้ดก็สามารถช่วย Copilot ในการแสดงความคิดเห็นได้เช่นกัน!

หากคุณมีรหัสอยู่แล้วและจำเป็นต้องจัดทำเอกสาร Copilot มักจะเข้าใจว่ามันคืออะไร

Copilot สามารถอธิบายโค้ดให้คุณได้ (ผ่าน Copilot Labs)

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

ฉันไม่พบว่าสิ่งนี้มีประโยชน์มากนักเนื่องจากฉันสามารถอ่านโค้ดได้อย่างคล่องแคล่ว แต่อาจมีประโยชน์หากโค้ดบางอย่างเป็นความลับโดยเฉพาะ

Copilot สามารถช่วยให้คุณเรียนรู้ภาษาเขียนโค้ดใหม่ได้

เมื่อฉันสร้างreact-native-colo-locoฉันต้องเขียนสคริปต์ Gradle ซึ่งเขียนด้วยภาษา Groovy ฉันรู้จักGroovyอยู่บ้าง แต่ไม่มากนัก ดังนั้นฉันจึงมุ่งเน้นไปที่การเขียนความคิดเห็นที่ถูกต้องแม่นยำ และให้ Copilot แนะนำบรรทัดของโค้ด จากนั้นฉันก็สามารถพึ่งพาประสบการณ์การพัฒนาของฉันเพื่อเลือกรูปแบบและไวยากรณ์ แล้วไปจากตรงนั้น

คุณสามารถดูผลลัพธ์ได้ที่นี่ (ฉันทิ้งความคิดเห็นชั้นนำของ Copilot ไว้เกือบทั้งหมดเพื่อแสดงให้เห็นว่าพวกเขาเป็นอย่างไร)

หากรหัสของ Copilot นั้นไม่ชัดเจน ให้สร้างต่อไป

Copilot ชอบบริบท ยิ่งคุณสร้างมากเท่าไหร่ก็ยิ่งมีบริบทมากขึ้นเท่านั้น และยิ่งมีประโยชน์มากขึ้นเท่านั้น เมื่อฉันตัดสินใจสร้างMobX-State-Treeขึ้นมาใหม่ Copilot มีประโยชน์อย่างเหลือเชื่อ เพราะมันสามารถตรวจสอบฐานรหัสที่เหลือได้ (รีแฟกเตอร์ไม่เคยจัดส่ง แต่มันเป็นแบบฝึกหัดที่ดีในการเรียนรู้)

ยังคงเป็นวันแรก แต่ฉันค่อนข้างรั้นกับ GitHub Copilot หากคุณมีเคล็ดลับอื่นๆ โปรดแจ้งให้เราทราบทาง Twitter !

กิตติกรรมประกาศ:

  • ขอขอบคุณ Rizèl Scarlett สำหรับการพูดคุยของเธอเกี่ยวกับ Copilot ที่นี่ (ควรค่าแก่การชมด้วย!):https://www.youtube.com/watch?v=CuQSoHbOpTQ
  • ขอบคุณ Marie Prokopets สำหรับบทความดีๆ ของเธอเกี่ยวกับ Copilot (คุณควรอ่านบทความนี้ด้วย!):https://nira.com/github-copilot/
  • ขอบคุณJenna Fucciสำหรับกราฟิกที่ยอดเยี่ยมที่ด้านบนของบทความนี้!