1 คะแนน โดย GN⁺ 2024-06-10 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

ความเสียหาย $10,000+ จากความผิดพลาดของ ChatGPT เพียงครั้งเดียว

กระบวนการสร้างรายได้ 🛣️

  • เบื้องหลัง: เริ่มสร้างรายได้ในช่วงเริ่มต้นของสตาร์ตอัป
  • การตั้งราคา: ตั้งราคาไว้ที่ $40 ต่อเดือนตามคำแนะนำของ Group Partner จาก YC
  • เทคสแตก: ย้ายจาก NextJS ไปเป็น Python/FastAPI และเชื่อมต่อ Stripe เสร็จเรียบร้อย

สาเหตุของการสูญเสีย $10,000 💰

  • ปัญหาที่เกิดขึ้น: ฟังก์ชันสมัครสมาชิกมีปัญหาสปินเนอร์โหลดไม่สิ้นสุด
  • การแก้ปัญหา: ใช้เวลา 5 วันวิเคราะห์อีเมลและล็อกจำนวนมาก ก่อนจะพบปัญหา
  • สาเหตุ: โค้ดที่ ChatGPT สร้างมีข้อผิดพลาดในวิธีสร้าง ID โดยใช้สตริง ID แบบตายตัว ทำให้เกิดการชนกันของ ID

จับบั๊ก 🐛

  • คำอธิบายปัญหา: การใช้สตริง ID แบบตายตัวทำให้เกิดการชนกันของ ID เมื่อมีหลายอินสแตนซ์รันอยู่บน AWS ECS กลางวันจึงไม่ค่อยมีปัญหา แต่ตอนกลางคืนเกิดการชนกัน
  • วิธีแก้: เปลี่ยนจาก ID แบบตายตัวไปใช้ฟังก์ชันสร้าง UUID หลังแก้ไขแล้วระบบกลับมานิ่ง

บทสรุป 🤖

  • บทเรียน: ยอมรับความผิดพลาดเรื่องการทดสอบที่ไม่เพียงพอ การคัดลอกและวางโค้ด และการคอมมิตเข้าเมนบรานช์โดยตรง
  • ประสบการณ์: แม้จะเป็นประสบการณ์ที่เจ็บปวด แต่ก็ถูกจดจำว่าเป็นช่วงเวลาสำคัญของสตาร์ตอัป

ความเห็นของ GN⁺

  • ความสำคัญของการทดสอบ: จำเป็นต้องมีทั้ง unit test และ integration test ที่เพียงพอ
  • การรีวิวโค้ด: แทนที่จะคัดลอกและวางโค้ด ควรให้ความสำคัญกับการรีวิวและตรวจสอบโค้ด
  • กลยุทธ์การดีพลอย: แทนที่จะคอมมิตเข้าเมนบรานช์โดยตรง ควรใช้บรานช์แยกและผ่านการรีวิวโค้ดก่อน
  • ความสามารถในการแก้ปัญหา: ความสามารถในการระบุและแก้ปัญหาได้อย่างรวดเร็วเป็นสิ่งสำคัญ
  • การเลือกเทคสแตก: การเปลี่ยนเทคสแตกควรวางแผนและทดสอบอย่างรอบคอบ

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

 
znjadong 2024-06-11

เอ๊ะ โค้ดที่ AI สร้างขึ้นมาแบบอัตโนมัติต้องรีวิวก่อนอยู่แล้วสิ ทำไมถึงเอาไปใช้ทั้งอย่างนั้นเลยล่ะ

 
GN⁺ 2024-06-10
ความเห็นจาก Hacker News
  • ความเห็นแรก: พบข้อผิดพลาดได้ทันที สาเหตุคือทีมขาดความเชี่ยวชาญ หากใช้โซลูชันมอนิเตอร์ก็น่าจะจับได้ไม่ยาก
  • ความเห็นที่สอง: แอปสร้างรายได้ได้ก็เพราะ ChatGPT การขาดทักษะด้านการเขียนโค้ด ดีบัก ล็อกกิง และมอนิเตอร์ คือสาเหตุของการสูญเสีย $10,000
  • ความเห็นที่สาม: การขาดมอนิเตอร์เป็นสาเหตุของการสูญเสีย $10,000 มี exception จากฐานข้อมูลเกิดขึ้น แต่ไม่มีการแจ้งเตือน ถ้ามีการแจ้งเตือนก็น่าจะแก้ได้ภายใน 5 นาที
  • ความเห็นที่สี่: ชี้ไปที่ปัญหาของกลยุทธ์การประเมินค่าอาร์กิวเมนต์ค่าเริ่มต้นของ Python ซึ่งจะถูกประเมินตอนนิยามฟังก์ชัน อาจตั้งใจออกแบบมาเพื่อประสิทธิภาพ และยังชี้ว่ารูปแบบการสร้างลิสต์ของ Python ก็เป็นปัญหาเช่นกัน
  • ความเห็นที่ห้า: คนก็มักทำพลาดแบบเดียวกันบ่อย ๆ โดยเฉพาะใน React/TypeScript/JavaScript ที่มักลืมใช้ lambda คิดว่าบทความในบล็อกอธิบายสาเหตุรากของปัญหาได้ไม่ชัดเจนพอ
  • ความเห็นที่หก: ความผิดพลาดเกิดขึ้นได้ง่าย แต่ไม่เข้าใจว่าทำไมหลังจากพลาดครั้งแรกแล้วถึงยังจับไม่ได้ สงสัยว่าไม่มี logging หรือไม่
  • ความเห็นที่เจ็ด: การเปิดเผยปัญหานี้ให้สาธารณะดูค่อนข้างไร้เดียงสา ChatGPT ไม่มีเหตุผลที่จะถูกตำหนิ และทำให้นึกถึงไอเดียบริการ code review
  • ความเห็นที่แปด: นี่เป็นปัญหาที่เกิดจากข้อจำกัดด้านเวลา และข้อจำกัดแบบนี้เองที่ทำให้กลัวการสมัครใช้ซอฟต์แวร์แบบ subscription
  • ความเห็นที่เก้า: ไม่เข้าใจสตาร์ตอัปที่พยายามหาเหตุผลมารองรับการรีไรต์ทั้งหมด ทั้งที่ยังไม่มีลูกค้าด้วยซ้ำ
  • ความเห็นที่สิบ: ทักษะในการใช้ LLMs คือการรู้ว่าควรใช้เมื่อไรและใช้อย่างไร คำตอบของ ChatGPT นั้นเหมาะสม แต่เมื่อเห็นคำแนะนำให้ลบผู้ใช้ทั้งหมดในบางบรรทัด ก็ได้บทเรียนครั้งใหญ่

แต่ละความเห็นนำเสนอมุมมองที่หลากหลายเกี่ยวกับปัญหาที่อาจเกิดขึ้นในกระบวนการพัฒนาซอฟต์แวร์และวิธีแก้ไข ซึ่งอาจให้ข้อคิดที่เป็นประโยชน์กับวิศวกรซอฟต์แวร์ระดับเริ่มต้นได้