การเขียนโค้ดด้วย AI

การเขียนโปรแกรมด้วย AI Agent

ปัญญาประดิษฐ์ (AI) ได้เข้ามาเปลี่ยนวิธีการเขียนโปรแกรมของเราไปอย่างสิ้นเชิง AI Agent สามารถสร้างโค้ด ปรับปรุงประสิทธิภาพ และแม้แต่ช่วยในการดีบั๊ก (debugging) ได้ อย่างไรก็ตาม ยังมีข้อจำกัดบางประการที่โปรแกรมเมอร์ควรคำนึงถึงเมื่อทำงานร่วมกับ AI

ปัญหาเรื่องลำดับและการซ้ำซ้อน

AI Agent มักประสบปัญหาเรื่องลำดับที่ถูกต้องของโค้ด ตัวอย่างเช่น พวกมันอาจวางการกำหนดค่าเริ่มต้น (initializations) ไว้ที่ท้ายไฟล์ ซึ่งทำให้เกิดข้อผิดพลาดขณะรันโปรแกรม (runtime errors) นอกจากนี้ AI ยังอาจสร้างคลาสหรือฟังก์ชันเดิมซ้ำหลายเวอร์ชันภายในโปรเจกต์เดียวกันโดยไม่ลังเล ซึ่งนำไปสู่ความขัดแย้งและความสับสน

แพลตฟอร์มโค้ดที่มีหน่วยความจำและโครงสร้างโปรเจกต์ช่วยได้

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

แพลตฟอร์มเขียนโค้ดด้วย AI ส่วนใหญ่ทำงานร่วมกับสิ่งที่เรียกว่า 'เครื่องมือ' (tools) ซึ่งโมเดลภาษาขนาดใหญ่ (LLM) สามารถเรียกใช้งานได้ เครื่องมือเหล่านี้อ้างอิงตามโปรโตคอลมาตรฐานเปิด (MCP) ดังนั้นจึงเป็นไปได้ที่จะเชื่อมต่อ IDE เช่น Visual Code เข้ากับ AI coding agent นอกจากนี้ คุณยังสามารถตั้งค่า LLM ไว้ในเครื่อง (locally) ได้ด้วย ลามะ หรือ ollama และเลือก MCP server เพื่อใช้งานร่วมกัน NetCare ได้สร้าง เซิร์ฟเวอร์เอ็มซีพี ขึ้นมาเพื่อช่วยในการดีบั๊กและจัดการระบบ (linux) เบื้องหลัง ซึ่งมีประโยชน์มากหากคุณต้องการนำโค้ดไปใช้งานจริง (live) ทันที
สามารถค้นหาโมเดลได้ที่ ฮักกิงเฟซ.

ส่วนขยาย IDE เป็นสิ่งที่ขาดไม่ได้

เพื่อจัดการโค้ดที่สร้างโดย AI ให้ดียิ่งขึ้น นักพัฒนาสามารถใช้ส่วนขยายของ IDE ที่ช่วยตรวจสอบความถูกต้องของโค้ดได้ เครื่องมืออย่าง linters, type checkers และเครื่องมือวิเคราะห์โค้ดขั้นสูงจะช่วยตรวจจับและแก้ไขข้อผิดพลาดตั้งแต่เนิ่นๆ ซึ่งถือเป็นส่วนเสริมที่จำเป็นสำหรับโค้ดที่สร้างโดย AI เพื่อรับประกันคุณภาพและความเสถียร

สาเหตุของข้อผิดพลาดที่เกิดขึ้นซ้ำๆ: บริบทและบทบาทใน API

เหตุผลสำคัญประการหนึ่งที่ AI Agent ยังคงทำผิดพลาดซ้ำๆ อยู่ที่วิธีการตีความ API ของ AI โมเดล AI ต้องการบริบทและคำอธิบายบทบาทที่ชัดเจนในการสร้างโค้ดที่มีประสิทธิภาพ ซึ่งหมายความว่าคำสั่ง (prompts) จะต้องสมบูรณ์ โดยไม่เพียงแต่ต้องระบุความต้องการด้านฟังก์ชันเท่านั้น แต่ยังต้องระบุผลลัพธ์ที่คาดหวังและเงื่อนไขต่างๆ ให้ชัดเจนด้วย เพื่อให้ง่ายขึ้น คุณสามารถบันทึกคำสั่งในรูปแบบมาตรฐาน (MDC) และส่งไปพร้อมกับ AI เป็นประจำ ซึ่งมีประโยชน์อย่างยิ่งสำหรับกฎการเขียนโปรแกรมทั่วไปที่คุณใช้ รวมถึงข้อกำหนดด้านฟังก์ชันและเทคนิค และโครงสร้างของโปรเจกต์ของคุณ

เครื่องมืออย่าง FAISS และ LangChain ช่วยได้

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

บทสรุป: มีประโยชน์ แต่ยังไม่สามารถทำงานได้ด้วยตนเองอย่างสมบูรณ์

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

ติดต่อ เพื่อช่วยในการตั้งค่าสภาพแวดล้อมการพัฒนา เพื่อให้ทีมสามารถใช้ประโยชน์จากสภาพแวดล้อมการพัฒนาได้อย่างเต็มที่ และมุ่งเน้นไปที่วิศวกรรมความต้องการ (requirements engineering) และการออกแบบ มากกว่าการดีบั๊กและการเขียนโค้ด

 

เจอราร์ด

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