8 คะแนน โดย xguru 2021-07-19 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • สิ่งที่รู้สึกหลังจากลองใช้มาสองสามสัปดาห์

→ "ภายใน 3~5 ปี พวกเราทุกคนจะเขียนคอมเมนต์มากขึ้น ใช้ชื่อที่อธิบายความหมายได้มากขึ้นกับทุกสิ่ง เขียนโค้ดน้อยลงมาก และทำ code review กันนับไม่ถ้วน"

  • ข้อดี

→ โดดเด่นมากในการเขียนโค้ด boilerplate ที่ซ้ำๆ น่าเบื่อ

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

→ "ตอนนี้ไม่ต้องเขียน quick macro แล้ว"

  • ข้อเสีย

→ สำหรับฟีเจอร์ขั้นสูง ความมีประโยชน์ของ Copliot ค่อนข้างก้ำกึ่ง

→ ต้องระวังกับการสร้างโค้ดจำนวนมากที่อาจจะทำสิ่งที่ถูกต้องหรือไม่ถูกต้องก็ได้

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

→ "ต้องระมัดระวังอยู่เสมอ"

[ งานวิจัย ]

ได้รับอินไซต์สำคัญจากบทความวิจัย Codex ของ GPT

  • ความเป็นไปได้

→ "Codex อาจมีประโยชน์ได้หลายรูปแบบ เช่น ช่วย onboarding ผู้ใช้เข้าสู่ codebase ใหม่ ลดการสลับบริบทของโปรแกรมเมอร์ที่ชำนาญ ให้ผู้ที่ไม่ใช่นักพัฒนาสามารถเขียนสเปกแล้วให้ Codex สร้าง implementation ฉบับร่าง และช่วยด้านการเรียนรู้หรือการสำรวจได้"

→ กล่าวคือ หากมันเรียนรู้ codebase ของบริษัทและแนะนำแพตเทิร์นหรือโมดูลที่ใช้กันทั่วทั้งบริษัทได้ ก็จะช่วยทำให้ Pattern และ Practice เป็นมาตรฐานมากขึ้นได้ (แม้คงไม่เกิดขึ้นในเร็วๆ นี้)

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

  • ข้อจำกัด

→ เนื่องจาก Codex อาจเสนอวิธีแก้ที่ไม่ได้ทำงานตามที่ตั้งใจจริงๆ ดังนั้น "code review" จึงสำคัญ

→ นอกจากนี้เพราะ "Automation Bias" (อคติจากระบบอัตโนมัติ) ยิ่ง Copilot ดีขึ้น ความตั้งใจที่จะมองหาบั๊กในโค้ดที่สร้างขึ้นก็จะยิ่งลดลง และบั๊กในโค้ดที่สร้างขึ้นจะยิ่งละเอียดอ่อนและตรวจพบได้ยาก

  • อาจแนะนำโค้ดที่ผิดได้

1 ความคิดเห็น

 
steadyslow 2021-07-19

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

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