ต้นกำเนิดของ Vibe Coding

คุณจำวันที่คุณเลิกพิมพ์โค้ดทีละบรรทัดได้ไหม คุณเริ่มกด Tab และปล่อยให้ Large Language Model (LLM) ช่วยเติมเต็มความคิดของคุณให้สมบูรณ์

ระหว่างปี 2024 ถึงต้นปี 2025 การพัฒนาซอฟต์แวร์ได้เปลี่ยนไป เราเปลี่ยนจากการยึดติดกับไวยากรณ์ (syntax) ที่เคร่งครัด ไปสู่สภาวะที่ไหลลื่นอย่างแท้จริง Andrej Karpathy เรียกสิ่งนี้ว่า Vibe Coding

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

สิ่งนี้ให้ความรู้สึกเหมือนมีพลังวิเศษ งานอย่างการตั้งค่าเซิร์ฟเวอร์หรือการเขียน SQL queries ใช้เวลาเพียงไม่กี่วินาที นักพัฒนาอิสระสามารถเปิดตัวผลิตภัณฑ์ได้รวดเร็วกว่าที่เคยเป็นมา

แต่ความเร็วนี้ก็มีกับดักซ่อนอยู่

เมื่อคุณมอบหมายการเขียนโค้ดให้ AI โดยปราศจากความเข้าใจในพื้นฐาน ความสามารถในการคิดเชิงวิพากษ์ของคุณจะลดลง คุณกำลังพึ่งพา "กล่องดำ" (black box) คุณได้โค้ดที่รวดเร็ว แต่คุณไม่รู้เลยว่ามันจะยังสามารถบำรุงรักษา (maintainable) ได้ต่อไปหรือไม่

วงจรของ Vibe Coding มีลักษณะดังนี้:

  • เขียน prompt เพื่อเพิ่มฟีเจอร์
  • รันโค้ดเพื่อดูว่าทำงานได้ไหม
  • หากล้มเหลว ให้คัดลอกข้อผิดพลาดกลับไปให้ AI แล้วสั่งให้มันแก้ไข

วิธีนี้ใช้ได้ผลกับตัวต้นแบบ (prototypes) แต่ใช้ไม่ได้กับสถาปัตยกรรมจริง ซึ่งจะนำไปสู่ Frankenstein code

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

เมื่อโปรเจกต์ของคุณเติบโตขึ้น คุณจะพบกับปัญหาเหล่านี้:

  • รูปแบบที่ไม่สอดคล้องกัน (Inconsistent patterns) AI ใช้สไตล์ที่แตกต่างกันในทุกๆ ไฟล์
  • การผูกมัดที่แน่นเกินไป (Extreme coupling) AI มักเลือกทางที่ง่ายที่สุดและทำลายขอบเขตของโมดูล (module boundaries)
  • การขาดความเข้าใจบริบท (Context blindness) AI ลืมฟังก์ชันที่มีอยู่แล้ว และสร้างโค้ดที่ซ้ำซ้อนหรือสร้างบั๊กใหม่ขึ้นมา

ผลลัพธ์ที่ได้คือระบบที่เปราะบาง ไม่มีมนุษย์คนไหนเข้าใจมัน และ AI ก็ไม่สามารถแก้ไขมันได้โดยไม่ทำให้ส่วนอื่นๆ พังไปด้วย

Vibe Coding ทำให้การพัฒนาเข้าถึงได้ง่ายขึ้น มันช่วยกำจัดงานที่น่าเบื่อออกไป แต่ความเร็วที่ปราศจากทิศทางจะนำไปสู่ภาวะล้มละลายทางเทคนิค (technical bankruptcy)

การจะสร้างระบบที่ขยายตัวได้ (scalable systems) คุณต้องการมากกว่าแค่ vibes คุณต้องการความเข้มงวดและการควบคุมคุณภาพ

แหล่งที่มา: https://dev.to/jcmexdev/el-origen-del-vibe-coding-j00

ชุมชนแห่งการเรียนรู้เพิ่มเติม: https://t.me/GyaanSetuAi