[AI-GitHub Copilot] เมื่อคุณไม่จำเป็นต้อง Coding อย่างเดียวดายอีกต่อไป
Generative AI — GitHub Copilot จะทำให้คุณภาพชีวิตของคุณดีขึ้นแน่นอน แต่ก็ภายใต้เงื่อนไขบางอย่างนะ
สรุปแบบขี้เกียจอ่านยาว ๆ
ถ้าคุณเขียน Code ได้ดีอยู่แล้ว (รู้ว่าเขียนอะไรไป) มีรูปแบบของตัวเองประมาณนึงอยู่แล้ว GitHub Copilot จะทำให้คุณทำงานได้ไวขึ้นแน่นอน
แต่ถ้าคุณยังเขียน Code ได้ไม่ดีพอ (ไม่รู้ว่าที่ก๊อบมาคืออะไร) GitHub Copilot ก็แค่ช่วยให้คุณก็อบไวขึ้น
และอย่าไว้ใจ ว่ามันจะดีงาม 100%
GitHub Copilot คืออะไร
GitHub Copilot is an AI pair programmer that helps you write code faster and with less work. It draws context from comments and code to suggest individual lines and whole functions instantly. GitHub Copilot is powered by OpenAI Codex, a generative pretrained language model created by OpenAI. It is available as an extension for Visual Studio Code, Visual Studio, Neovim, and the JetBrains suite of integrated development environments (IDEs).
ต้นฉบับได้กล่าวไว้ว่า
GitHub Copilot คือ AI pair programmer (ก็คือเรามี programmer อีก 1 คน ที่เป็น AI คอยช่วยเรา) ที่ทำหน้าที่ช่วยเขียน Code และทำให้ชีวิตเราดีขึ้น แนวทางการเขียน Code ก็จะมาจาก Comment หรือ Code ก่อนหน้าที่เราเขียนไว้ โดยสามารถช่วยเขียนได้ทั้งทีละบรรทัด หรือจะเขียนทั้ง Function ก็ยังไหว
ใช้งานยังไง
- มี Account GitHub
- จ่ายเงิน (มีให้ทดลองใช้งานได้ฟรี 1 เดือน)
- ติดตั้งตัว GitHub Copilot Plugin โดยตัว Plugin ใช้ได้กับ Visual Studio Code, Visual Studio, Neovim และ the JetBrains suite
- เขียน Code!
ประสบการณ์ใช้งานจริง
จบช่วงขายของแล้ว มาลุยของจริงกันดีกว่า แน่นอนว่าจะเป็นการใช้งานผ่าน VSCode และตัว Nuxt.js 3 กับโปรเจ็คทำเว็บข้อมูล
ระหว่างทำงาน
ถ้าเราไม่ได้ไปปรับอะไรเพิ่มเติม เราจะเห็น Icon ของ GitHub Copilot แสดงอยู่ที่ Status Bar บริเวณขวาล่าง
เวลาที่ตัว GitHub Copilot ทำงาน มันก็จะเปลี่ยนเป็นหมุน ๆ เอาจริง ๆ ตอนแรกก็งง ว่าอะไรมันทำงานตลอดเลย ระหว่างที่เขียน Code อยู่
การช่วยเขียน Code #1 ใช้แบบ Basic
อ้างอิงจาก Commit: https://github.com/puuga/ro-calculator/commit/37307b323a0e3a056e96de50355ba2d98d39762b
เป้าหมายที่พยายามจะทำคือ จะ Refactor ตัว Code ให้ใช้ Record แทนที่จะประกาศตัวแปรเยอะ ๆ
เริ่มจาก ลองปล่อยให้ตัว GitHub Copilot ลองเดาใจเราดู ผลที่ได้นั้น…
ครั้งแรกที่พยายามทำ ก็ตามที่เห็น คือ ตัว GitHub Copilot เดาไม่ถูก กับที่ตั้งใจจะทำ แต่ที่มันเดามาให้ก็ถือว่า OK นะ คือเห็นเลยว่ามันพยายามสร้าง Object ตัวใหม่ให้เรา ในแนวทางที่เราอยากได้
ไม่เป็นไร งั้นเราลองขยับไปนวดตรงจุดอื่นบ้าง เป้าหมายคือแบบเดิม จะพยายามใช้ Record แทนการประกาศตัวแปรเยอะ ๆ ผลที่ได้นั้น…
ครั้งที่สอง ก็ตามที่เห็น คือ ตัว GitHub Copilot ยังเดาไม่ถูกกับที่ตั้งใจไว้อยู่ดี
งั้นเปลี่ยนแนวคิดใหม่ เราทำให้ดูก่อน แล้วค่อยให้ GitHub Copilot ทำตาม โดย ขยับไปเขียนที่อื่น แปลงไปให้ Record ให้ดูก่อน แล้วย้อนกลับมา ผลที่ได้นั้น…
ก็คือ ทำเองในบรรทัดที่ 107–115 ให้ดูก่อน แล้วขยับไปทำบรรทัดที่ 98 คราวนี้เดาถูกแล้ว!
Case ต่อมา ก็คือต้องไปไล่ปรับ Code ใน Function ให้มันรับกับ Record ที่ที่ทำไว้ ผลที่ได้นั้น…
ผลที่ได้ในคราวนี้ ก็ยังคล้าย ๆ เดิม คือ ในช่วงแรก ๆ จะเดาไม่ถูก แต่พอทำให้ดูหน่อย ก็จะเดาได้ถูกมากขึ้นตามลำดับ
ก็ถือว่าชัดเจนในแบบที่มันควรเป็น คือ GitHub Copilot ก็เรียนจากสิ่งที่เราเขียนไป แล้วพยายามช่วยเราในแบบที่มันเข้าใจ
แอบขายของ
การช่วยเขียน Code #2 คนกำลังเห่ออะไรที่มัน Chat ได้
เนื่องจากยังติด Waitlist อยู่แล้วไม่ได้ซะที ก็จะยังไม่มีส่วนนี้ในตอนนี้ แต่ก็มีน้ำจิ้มมาให้ดูก่อน
จาก Video มันก็น่าจะออกมาแนว ๆ ว่าเรามีคนให้ปรึกษานะ ซึ่งดีนะ ถ้าคำแนะนำนั้น ไม่พาเราออกทะเล
สรุป
ของดี ถ้าใช้เป็น
ถ้าคุณเขียน Code ได้ดีอยู่แล้ว (รู้ว่าเขียนอะไรไป) มีรูปแบบของตัวเองประมาณนึงอยู่แล้ว GitHub Copilot จะทำให้คุณทำงานได้ไวขึ้นแน่นอน เนื่องจากตัว GitHub Copilot มันทำอะไรแบบนี้ได้ดีมาก จาก Code ตัวอย่างที่ทำ ถ้าต้องพิมพ์เองทั้งหมด ไม่มีทางทำได้ไวเท่า GitHub Copilot แน่นอน
แต่ถ้าคุณยังเขียน Code ได้ไม่ดีพอ (ไม่รู้ว่าที่ก๊อบมาคืออะไร) GitHub Copilot ก็แค่ช่วยให้คุณก็อบไวขึ้น เนื่องจาก Code ที่ตัว GitHub Copilot หามาให้ ส่วนใหญ่แล้ว ก็พอที่จะทำงานได้ (ถูกหรือไม่ถูก ก็อีกเรื่องนะ) ฉะนั้น ถ้าตัวผู้เขียน ไม่รู้ว่า Code ที่ตัว GitHub Copilot หามาให้ ทำงานอย่างไร ก็จะมีโอกาสพลาดสูง แต่ก็ไม่ได้หมายความว่าเราจะเรียนรู้จากความผิดพลาดไม่ได้นะ
และอย่าไว้ใจ ว่ามันจะให้ Code ที่ทำงานได้ถูกต้อง 100% มาให้เรา