GitHub Copilot: คู่มือใช้งาน Tips และ Tricks เพิ่มประสิทธิภาพการเขียนโค้ด 

โปรโมชั่นพิเศษ ต้อนรับปลายปี 2024 เปิดใช้งาน GitHub Copilot ฺBusiness หรือ GitHub Copilot ฺEnterprise ผ่าน Bit Foundry แบบไม่ต้องใช้บัตรเครดิต รับฟรี เทรนนิ่งการใช้ GitHub Copilotติดต่อขอใบเสนอราคาได้ที่ info@bitfoundry.co หรือ 062-390-9988 หรือ Line @bitfoundry

Post นี้เป็นส่วนหนึ่งของ Series การใช้ GitHub เพื่อเพิ่มประสิทธิภาพในทุกขั้นตอนของ DevSecOps/DevOps ถ้าอยากรู้ว่า GitHub มีเครื่องมืออะไรอีกบ้างที่จะช่วยให้เราสร้าง Software ได้ดีขึ้น ตามไปดูกันได้เลย

GitHub Copilot คืออะไร

GitHub Copilot คือเครื่องมือ AI ที่ช่วยแนะนำและเขียนโค้ดโดยอัตโนมัติ พัฒนาโดย GitHub ร่วมกับ OpenAI โดยใช้โมเดล AI ขนาดใหญ่ (เช่น Codex) ที่ถูกฝึกด้วยโค้ดจำนวนมหาศาลจากโครงการโอเพ่นซอร์สและแหล่งอื่น ๆ

คุณสมบัติเด่นของ GitHub Copilot

  • ช่วยแปลงโค้ดและ refactor: ช่วยในการปรับปรุงหรือเขียนโค้ดใหม่ให้มีประสิทธิภาพมากขึ้น
  • แนะนำโค้ดอัตโนมัติ: สามารถแนะนำบรรทัดโค้ดหรือโค้ดบล็อกตามที่ผู้ใช้กำลังพิมพ์ได้
  • รองรับหลายภาษา: รองรับภาษาการเขียนโปรแกรมยอดนิยม เช่น Python, JavaScript, TypeScript, Go, Ruby, C#, และอื่น ๆ
  • ทำงานร่วมกับ IDE ยอดนิยม: ใช้งานได้กับ Visual Studio Code, Visual Studio, Neovim, และ JetBrains IDEs
  • ช่วยสร้างฟังก์ชันที่ซับซ้อน: สามารถเขียนฟังก์ชันที่มีความซับซ้อนได้จากคำอธิบายสั้น ๆ หรือคอมเมนต์

เชื่อว่าหลายๆคนคงเคยใช้ GitHub Copilot กันมาบ้างแล้ว แต่อาจจะสงสัยว่านอกจาก Completion ที่ Copilot คอยช่วยเราใน Code Editor แล้ว Copilot ยังทำอะไรได้อีกบ้าง

การใช้งาน GitHub Copilot

เมื่อเรา install extension เรียบร้อยแล้ว เราก็จะสามารถใช้งาน GitHub Copilot จากใน Visual Studio Code ได้จาก 2 ช่องทาง คือ จาก Completions ใน Editor และจากใน Chat Window ซึ่ง GitHub Copilot Completions คือจะเป็นการแนะนำแบบ in-line ใน text editor windows เลย เช่น Generate method จาก comment เขียน code โดยอาศัย context ใน method นั้นๆ GitHub Copilot Chat จะเป็น Window แยกออกมาให้เราสามารถ Chat แบบต่อเนื่องได้มากกว่า

GitHub Copilot Completions

ใน Mode นี้ Copilot จะพยายาม suggest code ในระหว่งที่เราเขียน code โดยจะ suggest เป็นตัวสีเทาๆ ถ้าเรากด Tab ก็จะเป็นการ Accep suggestion นั้น หรือเราสามารถใช้ Ctrl + ลูกศรขวา เพื่อเป็นการ Accep ทีละคำได้

อยู่โดยอาศัยข้อมูลจาก code ที่เรามีอยู่ในแล้วใน File ที่ Active อยู่ และ code จากใน file อื่นๆ ที่เปิดอยู่ด้วยเป็นส่วนประกอบ ดังนั้นการเปิดไฟล์ที่เราคิดว่าจะช่วย Copilot ได้เอาไว้ด้วยก็จะช่วยให้ Copilot สามารถแนะนำ code ได้ถูกต้องแม่นยำยิ่งขึ้น

นอกจากนี้ แทนที่เราจะรอให้ Copilot แนะนำ code ให้เองจาก code อื่นๆที่เปิดเอาไว้อยู่แล้ว เราสามารถ guide Copilot ด้วยการใส่ comment ของ code ที่เราต้องการลงไปใน editor เลย แล้ว Copilot ก็จะพยายาม generate code ให้ตามที่เราต้องการ

GitHub Copilot Chat

สำหรับการใช้งานในรูปแบบ Chat จากใน Chat Window ที่เราจะ Activate ได้จาก tab ทางซ้าย

วิธีการใช้งานแบบพื้นฐานที่สุดคือ สามารถถามตอบได้เหมือน ChatGPT แต่ Copilot จะ แต่นั่นเรายังไม่ได้ใช้ความสามารถที่แท้จริงของ Copilot นอกจากเราจะสามารถพิมพ์ถามตอบได้เหมือน ChatGPT แล้ว เรายังสามารถใช้งานได้มากกว่าเมื่อเราใช้ keyword พิเศษ

เราสามารถเอา copy/paste response เข้าไปใน file ของเราได้เลย โดยคลิกที่ insert icon ที่อยู่ทางขวาบนของ response หรือ

เพื่อใช้ GitHub CoPilot ให้เต็มประสิทธิภาพ ใน GitHub Copilot Chat จะมี keyword พิเศษ อยู่ 3 กลุ่มใหญ่ๆ คือ Participant (@), Slash (/) commands, และ Variable (#)

Participants

ปกติแล้ว เวลาเราถามอะไรใน chat windows Copilot ก็จะสามารถตอบได้อยู่แล้ว เหมือนที่ ChatGPT ทำได้

แต่เราสามารถระบ Participant ซึ่ง เป็นเหมือนผู้เชี่ยวชาญพิเศษในบางเรื่อง ซึ่งจะช่วยตอบคำถามที่เฉพาะเจอะจงขึ้นได้ เวลาเราจะถามบางเรื่องเราก็ tag เรียก participant นั้นมาตอบได้ หรือถ้าเราไม่ได้ระบุ participant copilot ก็จะเลือกให้เองเป็นส่วนใหญ่

Participantใช้สำหรับตัวอย่าง
@workspaceสามารถรวบรวม code ใน workspace มาเป็น context ทำให้สามารถตอบคำถามที่เฉพาะเจาะจงกับ Code ของเราได้@workspace how often are we polling to backend?
@vscodeส่วนใหญ่จะให้ถามเกี่ยวกับวิธีการใช้งาน Visual Studo Code เช่น “@vscode เปลี่ยนเป็น darkmode ยังไง”@vscode how to change to darkmode
@terminalสามารถตอบคำถามเกี่ยวกับ Integrated terminal (ที่อยู่ใน VS Code) โดยอาศัย history ของ command ที่เคยพิมพ์เข้าไปแล้วได้@terminal list all files i edited today

Slash Commands

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

คำสั่งใช้สำหรับตัวอย่งการใช้งาน
/explainอธิบายการทำงานของ Code หรือ command ที่อยู่ใน terminal/explain @workspace หรือ /explain @terminal
/fixแก้ bug ในกรณีที่มี bug หรือแนะนำการปรับปรุง เช่น check null หรือ เพิ่ม comment /fix @workspace จะแนะนำการแก้ไข file ที่ active อยู่ หรือ ถ้าเรา highlight แค่บางส่วนของ file ก็จะแนะนำ fix แค่ของส่วนที่ highlight
/testGenerate unit test สำหรับ context
Content

Variables

ช่วยเพิ่ม context ให้กับ Copilot เพื่อจะได้ Focus กับบางส่วนของ Code เรา หรือ Console ของเรา เพื่อจะได้แนะนำได้เจาะจงมากขึ้น

ตัวแปรความหมาย
#editorCode ใน Active File (ในส่วนที่มองเห็นได้เท่านั้น ไม่ใช่ทั้ง file)
#fileอ้างถึง File ไหนโดยเฉพาะ เช่น #file:app.js หรือ #file:app.js@workspace /fix #file:.gitlab-ci.yml
หรือ จริงถ้าเราเปิด file .gitlab-ci.yml อยู่แล้วก็สามารถใช้แค่
/fix ได้เลย
#selectionCode ส่วนที่เรา highlight อยู่ใน editor
#terminalLastCommandคำสั่งสุดท้ายที่ Run ใน Integrated terminal เอาไว้ใช้ในกรณีที่เรา copy script จากที่อื่นมา run แล้วต้องการคำอธิบายเพิ่มเติม ก็ส่งข้อความว่า “explain #terminalLastCommand”
#terminalSelectionText ส่วนที่เรา highlight อยู่ใน terminal

สรุปความแตกต่างระหว่าง GitHub Copilot Completions และ GitHub Copilot Chat

คุณสมบัติGitHub Copilot CompletionsGitHub Copilot Chat
ฟังก์ชันหลักการเติมโค้ดอัตโนมัติและคำแนะนำเกี่ยวกับโค้ดผู้ช่วย Q&A แบบโต้ตอบและการดีบักโค้ด
โหมดการใช้งานคำแนะนำแบบอินไลน์ในขณะที่พิมพ์ จากใน Code Editor Window ของ Visual Studio Code หรือ Visual Studioอินเตอร์เฟซแบบแชทภายในสภาพแวดล้อมการเขียนโค้ด
กรณีการใช้งานเพิ่มความเร็วในการเขียนโค้ด, เรียนรู้ API/ไลบรารีใหม่การดีบัก, ทำความเข้าใจโค้ด, รับคำอธิบายอย่างละเอียด
ระดับการเรียนรู้ใช้งานง่ายกว่า – รวมเข้ากับกระบวนการเขียนโค้ดได้อย่างลงตัวต้องมีการเรียนรู้มากกว่า – ผู้ใช้ต้องโต้ตอบในลักษณะสนทนา
เหมาะสำหรับนักพัฒนาที่มีประสบการณ์ที่ต้องการเขียนโค้ดได้เร็วขึ้นนักพัฒนาที่ต้องการความช่วยเหลืออย่างละเอียด, การเรียนรู้ และการดีบัก

ใช้ GitHub Copilot Business แบบออกใบกำกับภาษีได้

ถ้าอ่านมาจนถึงตรงนี้แล้วอยากจะใช้ GitHub Copilot Business แบบที่ออกใบกำกับภาษีได้แล้วล่ะก็ ติดต่อขอใบเสนอราคาได้ที่

  • Mail: info@bitfoundry.co
  • Phone: 062-390-9988