นักพัฒนาซอฟต์แวร์กำลังเผชิญกับความท้าทายใหม่ที่ไม่เคยมีมาก่อน นั่นคือโมเดลปัญญาประดิษฐ์กำลังเป็นตัวกำหนดว่าส่วนต่อประสานการเขียนโปรแกรมของพวกเขาควรทำงานอย่างไร บริษัทต่างๆ กำลังออกแบบ API ใหม่ไม่ใช่จากความคิดเห็นของผู้ใช้หรือข้อกำหนดทางเทคนิค แต่เพราะแชทบอต AI คิดว่าฟังก์ชันบางอย่างมีอยู่จริงทั้งที่ไม่มี
แนวโน้มนี้เกิดขึ้นเมื่อนักพัฒนาสังเกตเห็นว่าโมเดล AI ที่ได้รับการฝึกฝนจากตัวอย่างโค้ดหลายล้านชิ้น มักแนะนำสิ่งที่พวกมันคิดว่าเป็นการออกแบบ API ที่ชัดเจน เมื่อคำแนะนำเหล่านี้ไม่ตรงกับความเป็นจริง บริษัทต่างๆ ต้องเลือกระหว่างการแก้ไข AI หรือเปลี่ยนโค้ดของตนให้ตรงกับความคาดหวังของ AI
การเพิ่มขึ้นของการตัดสินใจพัฒนาที่ขับเคลื่อนโดย AI
หลายบริษัทได้ปรับปรุงซอฟต์แวร์ของตนเพื่อรองรับสมมติฐานของ AI แล้ว บริษัทซอฟต์แวร์เพลง Soundslice เพิ่มฟีเจอร์เพียงเพราะ ChatGPT บอกผู้ใช้ว่าฟีเจอร์เหล่านั้นมีอยู่ ในทำนองเดียวกัน บริษัทฐานข้อมูล Instant เปลี่ยนโครงสร้าง API หลังจากที่โมเดล AI เขียน tx.create
อย่างต่อเนื่องแทนที่จะเป็นฟังก์ชัน tx.update
ที่เป็นจริง
การตอบสนองของชุมชนแสดงให้เห็นความรู้สึกที่หลากหลายเกี่ยวกับการพัฒนานี้ นักพัฒนาบางคนมองว่าเป็นสิ่งที่มีประโยชน์ โดยให้เหตุผลว่าโมเดล AI แนะนำการออกแบบที่เข้าใจง่ายที่สุดซึ่งนักพัฒนามนุษย์จะคาดหวังตามธรรมชาติ คนอื่นๆ กังวลเกี่ยวกับผลกระทบของการปล่อยให้โมเดล AI มีอิทธิพลต่อการตัดสินใจสถาปัตยกรรมซอฟต์แวร์พื้นฐาน
ตัวอย่างการเปลี่ยนแปลง API ที่ขับเคลื่อนโดย AI:
- Soundslice: เพิ่มฟีเจอร์ต่างๆ เพราะ ChatGPT บอกผู้ใช้ว่าฟีเจอร์เหล่านั้นมีอยู่
- Instant: เพิ่มฟังก์ชัน
tx.create
เพราะโมเดล AI เขียนฟังก์ชันนี้อย่างสม่ำเสมอแทนที่จะใช้tx.update
- แนวโน้มทั่วไป: บริษัทต่างๆ ปรับ API ให้เข้ากับความคาดหวังของโมเดล AI แทนที่จะแก้ไข AI
การเปลี่ยนแปลงหลักการเขียนโค้ดสำหรับโลกที่ AI เป็นหลัก
การเปลี่ยนแปลงขยายไปเกินกว่าการเปลี่ยนแปลง API แต่ละตัวไปสู่แนวปฏิบัติการเขียนโปรแกรมที่กว้างขึ้น นักพัฒนาเริ่มพิจารณาว่าโค้ดของพวกเขาจะเข้าใจได้ง่ายโดยโมเดล AI หรือไม่ แทนที่จะมุ่งเน้นเพียงความสามารถในการอ่านของมนุษย์หรือหลักการวิศวกรรมซอฟต์แวร์แบบดั้งเดิม
หลักการเขียนโค้ดในอนาคตจะเกี่ยวกับว่า agentic ide ของคุณสามารถจัดทำดัชนีได้ดีเพื่อให้ตระหนักถึงบริบท และมันจะพอดีกับหน้าต่างบริบทหรือไม่
นี่แสดงถึงการเปลี่ยนแปลงพื้นฐานในวิธีการออกแบบซอฟต์แวร์ แทนที่จะเพิ่มประสิทธิภาพเพื่อความเข้าใจของมนุษย์หรือประสิทธิภาพการทำงาน นักพัฒนาอาจต้องเพิ่มประสิทธิภาพเพื่อความเข้าใจและการสร้างของ AI
หลักการเขียนโค้ดแบบดั้งเดิม เทียบกับ ยุค AI:
การมุ่งเน้นแบบดั้งเดิม | การมุ่งเน้นในยุค AI |
---|---|
ความสามารถในการอ่านของมนุษย์ | ความสามารถในการจัดทำดัชนีของ AI |
หลักการ SOLID | ความเข้ากันได้กับ context window |
ความสามารถในการบำรุงรักษาโค้ด | ความเข้าใจของโมเดล |
การปรับปรุงประสิทธิภาพ | ประสิทธิภาพการสร้างโค้ดด้วย AI |
ผลกระทบของการมาตรฐาน
นักพัฒนาบางคนยินดีต้อนรับแนวโน้มนี้ในฐานะรูปแบบหนึ่งของการมาตรฐานตามธรรมชาติ การทำงานกับลูกค้าหลายรายมักหมายถึงการต้องจัดการกับการตั้งชื่อที่ไม่สอดคล้องกันและการออกแบบ API ที่แปลกประหลาดซึ่งใช้พลังงานทางจิตโดยไม่เพิ่มคุณค่า โมเดล AI ที่ได้เห็นรูปแบบจากโค้ดเบสหลายล้านชิ้น มักแนะนำแนวทางที่เป็นมาตรฐานมากกว่า
อย่างไรก็ตาม การมาตรฐานนี้มาพร้อมกับต้นทุน การออกแบบ API ที่เป็นนวัตกรรมหรือเป็นเอกลักษณ์อาจกลายเป็นเรื่องยากที่จะดำเนินการหากโมเดล AI ไม่รู้จักหรือไม่สนับสนุน แรงกดดันให้ปฏิบัติตามความคาดหวังของ AI อาจขัดขวางความคิดสร้างสรรค์ในการออกแบบซอฟต์แวร์
ความต้านทานและการปรับตัว
ไม่ใช่ทุกคนที่ยอมรับแนวทางที่ขับเคลื่อนโดย AI นี้อย่างเต็มใจ นักพัฒนาบางคนตั้งคำถามว่าบริษัทควรรองรับสมมติฐานของ AI โดยอัตโนมัติหรือไม่ แทนที่จะรักษาการตัดสินใจออกแบบเดิมของพวกเขา การถกเถียงนี้สะท้อนความกังวลที่กว้างขึ้นเกี่ยวกับว่า AI ควรมีอิทธิพลต่อการตัดสินใจของมนุษย์ในสาขาเทคนิคมากแค่ไหน
ปรากฏการณ์นี้เน้นย้ำความเป็นจริงใหม่ในการพัฒนาซอฟต์แวร์ เครื่องมือ AI ไม่ใช่เพียงผู้ช่วยเหลือแบบเฉยๆ อีกต่อไป แต่เป็นผู้เข้าร่วมที่มีบทบาทในการกำหนดรูปแบบการสร้างซอฟต์แวร์ เมื่อ AI กลายเป็นสิ่งที่แพร่หลายมากขึ้นในเวิร์กโฟลว์การเขียนโค้ด อิทธิพลนี้น่าจะแข็งแกร่งขึ้น
ผลกระทบระยะยาวยังไม่ชัดเจน แต่สิ่งหนึ่งที่แน่นอนคือ ความสัมพันธ์ระหว่างนักพัฒนามนุษย์และเครื่องมือ AI กำลังพัฒนาจากการช่วยเหลืออย่างง่ายไปสู่ความเป็นหุ้นส่วนที่ซับซ้อนมากขึ้น ซึ่งทั้งสองฝ่ายมีอิทธิพลต่อพฤติกรรมของกันและกัน
อ้างอิง: Gaslight-driven development