13 คะแนน โดย GN⁺ 2025-04-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • บทความนี้เป็นการทบทวนเชิงวิพากษ์เกี่ยวกับ Vibe Coding ซึ่งเป็นการพัฒนาร่วมกับ AI ในสภาวะ "ภาวะลื่นไหล (Flow)" ระหว่างการเขียนโค้ด
  • ในช่วงสองเดือนที่ผ่านมา ผู้เขียนพึ่งพา Vibe Coding แต่สรุปได้ว่า ไม่น่าพอใจทั้งในแง่ประสิทธิภาพการทำงานและต้นทุน
  • Vibe Coding ไม่ใช่วิธีวิทยาการพัฒนาแบบเฉพาะเจาะจง แต่เป็นรูปแบบการพัฒนาที่ขับเคลื่อนด้วยสภาวะหรืออารมณ์
    • อาศัยผู้ช่วยเขียนโค้ด AI (Cline, Roo Code, Cursor เป็นต้น) เพื่อเขียนโค้ดไปตามกระแสของงาน
    • ทำงานโดยไม่มีแผนที่ชัดเจน ใช้เพียงสัญชาตญาณและความรู้สึกจมดิ่งกับงาน พร้อม ไล่ตาม "ความรู้สึกว่ามีความคืบหน้า" ที่ขับเคลื่อนด้วยโดพามีน

ปัญหาของ Vibe Coding

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

ข้อดีก็มีอยู่

  • ผ่านการดีบักซ้ำ ๆ และทำความเข้าใจใหม่หลายรอบ ทำให้ เข้าใจโครงสร้างโค้ดและตัวภาษาได้ดีขึ้น
  • ผู้เขียนกำลังโฟกัสกับการเรียน Python และเริ่มมี ความสามารถในการเข้าใจข้อผิดพลาดและชี้นำโมเดลได้อย่างถูกต้อง มากขึ้นทีละน้อย

Vibe Coding vs. AI Chat vs. การค้นหาเว็บ

  • Vibe Coding: มีประโยชน์สำหรับการสำรวจช่วงต้นหรือการทดลอง แต่ไม่เหมาะกับการพัฒนาแบบมีโครงสร้าง
  • AI Chat (เช่น ChatGPT): มีประโยชน์สำหรับคำตอบที่รวดเร็วและการสร้าง boilerplate แต่การเชื่อแบบไม่ตั้งคำถามมีความเสี่ยง (อาจเกิด AI hallucination ได้)
  • การค้นหาเว็บ: จำเป็นสำหรับการหาคอนเซปต์และวิธีแก้ที่แม่นยำ แต่ก็อาจใช้เวลานาน

ชุดเครื่องมือที่ชอบในตอนนี้: Gemini + Open WebUI

  • Gemini Code Assist (ใช้งานใน VS Code):
    • ใช้งานฟรี และ เด่นในการสร้างโค้ดทดสอบและแก้ไขข้อผิดพลาด
    • มีประโยชน์เป็นพิเศษสำหรับคนที่เพิ่งเริ่มทำ unit test
  • Open WebUI:
    • รองรับหลายโมเดลและปรับแต่งได้
    • สามารถตั้งค่า prompt ให้เหมาะกับวัตถุประสงค์เฉพาะ (การเขียนโค้ด, งานวิจัย, สิทธิบัตร เป็นต้น)
    • เหมาะกับงานอย่างการจัดข้อความให้เป็นระเบียบ การแปลงเป็นตาราง และงานที่ คุ้มค่ากับต้นทุน

ตัวเลือกที่ไม่มีประสิทธิภาพ: AI agent แบบไม่จำกัด

  • Roo Code, Cline เป็นต้น ทำงานนานและใช้โทเค็นจำนวนมาก
    • โดยเฉพาะสายที่ใช้ Claude แม้ประสิทธิภาพจะดี แต่ต้นทุน สูงเกินไปมาก
  • แทนที่จะเป็นเช่นนั้น Gemini 2.0, DeepSeek V3/Chat เป็นต้น ฟรีหรือราคาถูกกว่า และประสิทธิภาพก็อยู่ในระดับดี

สรุป: กำลังหาสมดุลที่เหมาะสม

  • ไม่อาจบอกได้ว่า Vibe Coding แย่ไปทั้งหมด
    • ช่วยเรื่องการใช้ความคิดสร้างสรรค์และการสำรวจไอเดีย ได้
  • อย่างไรก็ตาม มัน ไม่ใช่วิธีพัฒนาที่ทำได้อย่างยั่งยืน
    • เมื่อต้องเผชิญกับกำหนดส่งงานและต้นทุน ก็จำเป็นต้องมีทางเลือกที่เป็นจริงมากกว่า
  • ชุดที่ผู้เขียนมองว่าเหมาะที่สุดในตอนนี้:
    • Gemini Code Assist (ฟรี, เด่นเรื่อง unit test)
    • Open WebUI (ได้เปรียบในแง่การควบคุมและต้นทุน)
  • แผนต่อจากนี้:
    • กำลังพิจารณาแอปแชตแบบเสียเงินอย่าง Perplexity ($20/เดือน และมีฟรี tier ด้วย)
    • เนื่องจากค่าใช้จ่าย API เกิน $30 ต่อเดือน จึงจำเป็นต้องลดต้นทุนอย่างเป็นระบบ
    • ในระยะยาว กำลังพิจารณาการรันโมเดลแบบโลคัลด้วย และอาจเปลี่ยนไปใช้หากมีโมเดลที่มีประสิทธิภาพกว่าปรากฏขึ้น

1 ความคิดเห็น

 
GN⁺ 2025-04-01
ความเห็นจาก Hacker News
  • น่าสนใจที่ได้อ่านรายงานเกี่ยวกับวิธีที่คนอื่นใช้ LLMs ในการเขียนโค้ด

    • สำหรับผมเอง LLMs ก้าวข้าม "uncanny valley" ของการเขียนโปรแกรมไปแล้ว และช่วยเพิ่มประสิทธิภาพได้มาก
    • ถ้าอธิบายปัญหาและข้อจำกัดได้ดี ก็สามารถสร้างโค้ดหลายพันบรรทัดได้อย่างแม่นยำ
    • การรีวิวโค้ดที่ LLM สร้างขึ้นเป็นสิ่งสำคัญ และถ้าระบุความต้องการให้ชัดเจนก็แก้ปัญหาได้ดี
    • การขอให้ "บอกแผนที่จะใช้ในการนำวิธีแก้ไปทำจริง" มีประโยชน์
    • ผลลัพธ์น่าทึ่งมาก สไตล์อาจต่างกัน แต่ในเชิงโครงสร้างแม่นยำมาก
  • Vibe coding เหมาะกับการทำต้นแบบเชิงสำรวจมากกว่าการเขียนโค้ดสำหรับ production

    • ใช้กับเครื่องมือส่วนตัวได้ แต่ไม่เหมาะกับโค้ดที่จะนำไปแจกจ่ายให้คนอื่นใช้
    • จำเป็นต้องเข้าใจโค้ดและทำซ้ำปรับปรุง
    • Vibe coding ถูกนิยามว่าเป็นการทำโดยไม่ใส่ใจตัวโค้ด
  • Vibe coding คือการปล่อยตัวไปกับ "flow" แล้วสร้างโค้ดออกมาอย่างง่ายดาย

    • มีมุกว่าถ้าฉากแฮ็กเกอร์ในหนังใช้ ChatGPT ก็คงจะดูเท่กว่านี้
    • การตัดสินความถูกต้องของโค้ดจากแค่การรันผ่านนั้นไม่ใช่แนวทางที่ดี
    • อย่างน้อยก็ควรรีวิวผลลัพธ์ที่ LLM สร้างออกมา
  • คิดว่า Vibe coding ไม่เกี่ยวกับการเขียนโค้ดเลย

    • แม้คนที่ไม่ใช่มืออาชีพจะสร้างโค้ดขนาดเล็กได้ แต่ระบบขนาดใหญ่ยังเป็นเรื่องยาก
    • LLMs มีประโยชน์ในการสร้างโค้ด boilerplate แต่ถ้าเกิดปัญหาก็ยังต้องมีการแก้ไข
    • 'vibe coders' หน้าใหม่มักไม่เข้าใจปัญหาและคอยลองซ้ำไปเรื่อย ๆ
  • ใช้เงินวันละ $30 ไปกับการใช้ Claude Code

    • ลงเงินกับ Vibe coding ไปมาก
  • การทำงานเป็นโครงสร้างต้นไม้มีประโยชน์

    • เริ่มจากวาดภาพใหญ่แล้วค่อยเติมรายละเอียด
    • มีประสิทธิภาพเมื่อทำงานร่วมกับ LLMs
    • มีความเป็นโครงสร้าง แต่ก็ยังอาจถือเป็น Vibe coding ได้
  • Karpathy เก่งเรื่องการตั้งชื่อ

    • ชื่อใหม่นี้ติดตลาดได้ดี
  • ใช้ LLM เยอะมาก แต่แนวคิดเรื่อง Vibe เริ่มจากมุกตลกบนออนไลน์

    • การตั้งคำถามให้ดีเป็นเรื่องสำคัญ และคล้ายกับการเขียนโค้ด
    • การทดสอบสำคัญมาก และการเรียนรู้ผ่าน LLM ก็เดินหน้าได้เร็ว
  • การแสดงความคิดของตัวเองออกมาเป็นภาษาทางการมีคุณค่า

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

    • ตอนเขียน SQL query, Gemini ให้ผลลัพธ์ที่ดีกว่า