นักพัฒนาแตกแยกเรื่องความยากง่ายในการเรียนรู้และประสิทธิภาพของเครื่องมือ AI สำหรับการเขียนโค้ด

ทีมชุมชน BigGo
นักพัฒนาแตกแยกเรื่องความยากง่ายในการเรียนรู้และประสิทธิภาพของเครื่องมือ AI สำหรับการเขียนโค้ด

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

การอ้างว่าไม่มีความยากในการเรียนรู้จุดประกายการต่อต้าน

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

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

รูปแบบการใช้งานในโลกแห่งความจริงเริ่มปรากฏ

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

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

กรณีการใช้งาน AI ในการเขียนโค้ดที่มีประสิทธิภาพ:

  • การนำมาตรฐานและโปรโตคอลที่มีการยอมรับแล้วมาใช้งาน
  • การเขียนการทดสอบการรวมระบบและโค้ดพื้นฐาน
  • การคัดแยกและแก้ไขข้อผิดพลาดง่ายๆ ใน Sentry
  • การทำงานกับเทคโนโลยีใหม่และเอกสารประกอบ
  • การสร้างส่วนประกอบซอฟต์แวร์ขนาดเล็กที่สามารถเปลี่ยนแทนได้
  • การสร้างโครงสร้างพื้นฐานและการกำหนดค่าการปรับใช้งาน

ข้อพิจารณาด้านภาษาและเฟรมเวิร์ก

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

นักพัฒนาหลายคนสังเกตว่าเครื่องมือ AI เก่งกับภาษาและเฟรมเวิร์กหลัก แต่ประสบปัญหากับเทคโนโลยีที่ไม่ค่อยได้รับความนิยม อย่างไรก็ตาม บางคนรายงานความสำเร็จแม้กับภาษาเฉพาะทางอย่าง D programming ซึ่งแสดงให้เห็นว่าความสามารถของ AI อาจกว้างกว่าที่คิดไว้ในตอนแรก

ประสิทธิภาพของภาษาโปรแกรมมิ่งกับเครื่องมือ AI:

  • ประสิทธิภาพดีที่สุด: Rust (ข้อความแสดงข้อผิดพลาดของคอมไพเลอร์ที่ยอดเยี่ยมช่วยแนะนำ AI)
  • ต้องการการตั้งค่า: Python (ต้องการ strong typing เพื่อผลลัพธ์ที่ดี)
  • ดีอย่างน่าประหลาดใจ: ภาษาโปรแกรมมิ่ง D (แม้จะมีข้อมูลการฝึกอบรมที่จำกัด)
  • โดยทั่วไปแข็งแกร่ง: TypeScript , เฟรมเวิร์กและมาตรฐานที่มีชื่อเสียง

ความท้าทายด้านราคาและความเสถียร

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

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

อ้างอิง: The current state of LLM-driven development