ต้นกำเนิดของ 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
