ขบวนการที่เติบโตขึ้นในหมู่นักพัฒนาซอฟต์แวร์กำลังท้าทายคำแนะนำยอดนิยมที่ให้ปรับแต่ง AI prompt อย่างไม่รู้จบเพื่อสร้างโค้ด แต่กลับสนับสนุนแนวทางการลงมือทำจริงที่ผสมผสานทักษะการเขียนโค้ดแบบดั้งเดิมกับการใช้ AI อย่างมีกลยุทธ์
การถกเถียงนี้มีจุดศูนย์กลางอยู่ที่วิธีการที่นักพัฒนาควรใช้งานเครื่องมือเขียนโค้ดด้วย AI เช่น Claude , Cursor และ GitHub Copilot ในขณะที่หลายคนยอมรับแนวคิดการเขียนโปรแกรมด้วยภาษาอังกฤษผ่าน prompt ที่มีรายละเอียด นักพัฒนาที่มีประสบการณ์กลับพบว่าแนวทางนี้ไม่มีประสิทธิภาพและส่งผลในทางตรงกันข้าม
ปัญหาของการปรับแต่ง Prompt อย่างไม่รู้จบ
นักพัฒนาหลายคนรายงานว่าใช้เวลามากเกินไปในการพยายามทำให้ AI prompt สมบูรณ์แบบ แต่กลับได้ผลลัพธ์ที่ปานกลาง ชุมชนได้ระบุปัญหาหลายประการของการพึ่งพา prompt engineering มากเกินไป ประการแรก มันสร้างเวิร์กโฟลว์ที่ไม่แม่นยำและช้า ซึ่งมักนำไปสู่ความหงุดหงิด ประการที่สอง มันอาจทำให้นักพัฒนาสูญเสียการติดต่อกับโค้ดจริงที่พวกเขาควรเข้าใจและดูแลรักษา
นักพัฒนาคนหนึ่งได้แบ่งปันประสบการณ์ของพวกเขากับฟีเจอร์ autocomplete ของ AI โดยสังเกตว่าการแนะนำอย่างต่อเนื่องกลายเป็นสิ่งรบกวนมากกว่าที่จะช่วย พวกเขาพบว่าตัวเองใช้เวลาในการอ่านคำแนะนำที่ AI สร้างขึ้นมากกว่าการคิดเกี่ยวกับตรรกะของโค้ดจริงๆ และในที่สุดก็ตัดสินใจปิดฟีเจอร์นี้ทั้งหมด
แนวทางที่สมดุลมากขึ้นเริ่มปรากฏ
ชุมชนนักพัฒนากำลังมาบรรจบกันในแนวทางไฮบริดที่ปฏิบัติต่อ AI เหมือนเป็นนักพัฒนาระดับจูเนียร์มากกว่าโซลูชันวิเศษ แนวทางนี้เกี่ยวข้องกับการเขียนโครงสร้างโค้ดเริ่มต้น คอมโพเนนต์สำคัญ หรือโครงร่างที่มีรายละเอียด จากนั้นให้ AI เติมช่องว่างหรือจัดการงานประจำ
กลยุทธ์ที่มีประสิทธิภาพหลายอย่างได้เกิดขึ้นจากการอภิปรายของชุมชน นักพัฒนาขอให้ AI สร้างเวอร์ชันเริ่มต้นแล้วปรับปรุงผลลัพธ์ด้วยตัวเอง คนอื่นๆ เขียนตรรกะหลักก่อนแล้วใช้ AI สำหรับ boilerplate code บางคนสร้างโครงร่างโค้ดที่มีรายละเอียดและให้ AI ดำเนินการในส่วนที่เฉพาะเจาะจง ในขณะที่คนอื่นๆ ใช้ AI หลักๆ สำหรับการค้นหา API และ syntax ที่ไม่คุ้นเคย
ผมใช้ AI เป็นเพื่อนคู่หูที่สามารถค้นหา API และอัลกอริทึมได้อย่างรวดเร็ว หรือเป็น text editor ที่ฉลาดมากที่เข้าใจการ refactoring, DRY และอื่นๆ แต่ผมยังคงเป็นคนตัดสินใจสถาปัตยกรรมและเขียนการทดสอบ
กลยุทธ์การเขียนโค้ดด้วย AI ที่มีประสิทธิภาพ:
- ขอให้ AI สร้างเวอร์ชันเริ่มต้น จากนั้นปรับปรุงด้วยตนเอง
- เขียนตรรกะหลักก่อน ใช้ AI สำหรับโค้ดพื้นฐาน
- สร้างโครงร่างโค้ด ให้ AI เติมรายละเอียดการใช้งาน
- ใช้ AI สำหรับการค้นหา API และไวยากรณ์ที่ไม่คุ้นเคย
- ปฏิบัติต่อ AI เหมือนนักพัฒนาระดับเริ่มต้นที่ต้องการการดูแล
ปัจจัยด้านการเรียนรู้และความเข้าใจ
ความกังวลสำคัญที่นักพัฒนาหยิบยกขึ้นมาคือผลกระทบต่อการพัฒนาทักษะและความเข้าใจโค้ด เมื่อ AI สร้างบล็อกโค้ดขนาดใหญ่ นักพัฒนาต้องใช้เวลามากในการอ่านและเข้าใจผลลัพธ์ก่อนที่จะสามารถใช้งานได้อย่างปลอดภัย หลายคนพบว่าพวกเขาสามารถเขียนโค้ดได้เร็วกว่าการอ่านและตรวจสอบโค้ดที่ AI สร้างขึ้น
สิ่งนี้นำไปสู่การสังเกตที่น่าสนใจเกี่ยวกับความสนใจและการโฟกัส นักพัฒนาบางคนรายงานว่าการปิด AI autocomplete ช่วยให้พวกเขาจดจำเกี่ยวกับ codebase ของตัวเองได้มากขึ้นและมีส่วนร่วมกับโค้ดที่พวกเขาเขียนอย่างลึกซึ้งมากขึ้น การเปลี่ยนบริบทอย่างต่อเนื่องระหว่างความคิดของตัวเองและคำแนะนำของ AI กลับกลายเป็นเรื่องที่ทำให้จิตใจเหนื่อยล้า
ความท้าทายในการนำไปใช้จริง
ชุมชนยังได้เน้นย้ำปัญหาเชิงปฏิบัติกับเครื่องมือเขียนโค้ดด้วย AI ในปัจจุบัน ฟีเจอร์ autocomplete มักจะรบกวนงานพื้นฐานเช่นการจัดย่อหน้า ทำให้นักพัฒนาต้อง rebind keyboard shortcut หรือพัฒนาวิธีแก้ไขปัญหา ฟีเจอร์ format-on-save สามารถสร้างความซับซ้อนเพิ่มเติมเมื่อทำงานกับ codebase ที่ใช้มาตรฐานการจัดรูปแบบที่แตกต่างกัน
แม้จะมีความท้าทายเหล่านี้ นักพัฒนาก็ไม่ได้ปฏิเสธเครื่องมือ AI ทั้งหมด แต่กลับหาการใช้งานที่เจาะจงมากขึ้น เช่น การทำงานกับ API ที่ไม่คุ้นเคย การสร้าง boilerplate code หรือการได้ตัวอย่างอย่างรวดเร็วสำหรับภาษาโปรแกรมมิ่งหรือเฟรมเวิร์กใหม่
ปัญหาทั่วไปของเครื่องมือเขียนโค้ดด้วย AI:
- การทำงานของ autocomplete ที่รบกวนการจัดย่อหน้าพื้นฐาน (ปัญหาการใช้ปุ่ม TAB ที่ขัดแย้งกัน)
- การสลับความสนใจระหว่างความคิดส่วนตัวและคำแนะนำจาก AI
- การเสื่อมสภาพของบริบทในการสนทนากับ AI แบบยาว ๆ
- ปัญหาการจัดรูปแบบเมื่อบันทึกไฟล์ที่มีมาตรฐานการจัดรูปแบบแบบผสม
- การรั่วไหลของทรัพยากรและข้อผิดพลาดที่ซ่อนเร้นในโค้ดที่สร้างขึ้น
อนาคตของการพัฒนาด้วยความช่วยเหลือของ AI
การอภิปรายเผยให้เห็นความเข้าใจที่เป็นผู้ใหญ่มากขึ้นเกี่ยวกับบทบาทของ AI ในการพัฒนาซอฟต์แวร์ แทนที่จะมองว่าเป็นการทดแทนทักษะการเขียนโค้ด นักพัฒนาที่ประสบความสำเร็จกำลังปฏิบัติต่อมันเป็นเครื่องมือที่ทรงพลังแต่มีข้อจำกัด ซึ่งต้องการการจัดการและการดูแลอย่างระมัดระวัง
ฉันทามติแสดงให้เห็นว่าแนวทางที่มีประสิทธิภาพมากที่สุดคือการผสมผสานความเชี่ยวชาญด้านการเขียนโปรแกรมแบบดั้งเดิมกับการช่วยเหลือของ AI อย่างมีกลยุทธ์ นักพัฒนาที่รักษาทักษะการเขียนโค้ดของตัวเองในขณะที่ใช้ AI อย่างเลือกสรรสำหรับงานที่เหมาะสมดูเหมือนจะได้ผลลัพธ์ที่ดีที่สุด หลีกเลี่ยงทั้งความไร้ประสิทธิภาพของการปรับแต่ง prompt อย่างไม่รู้จบและความเสี่ยงของการพึ่งพาการสร้างโค้ดอัตโนมัติมากเกินไป
การเปลี่ยนแปลงในการคิดนี้แสดงถึงแนวทางที่ยั่งยืนมากขึ้นสำหรับการพัฒนาด้วยความช่วยเหลือของ AI แนวทางที่รักษาทักษะสำคัญที่นักพัฒนาต้องการในขณะที่ใช้ประโยชน์จากจุดแข็งของ AI ในบริบทที่เหมาะสม
อ้างอิง: Write the damn code