Contact
Line : comsiam
Contact
Line : comsiam

หากสร้างเว็บไซต์หรือแอปด้วย Gemini Canvas แล้วเจอปัญหา เช่น หน้า Preview ขาว ปุ่มกดไม่ได้ Form ไม่ทำงาน ข้อมูลไม่แสดง หรือมีข้อความ Error ไม่จำเป็นต้องลบแอปแล้วสร้างใหม่ทั้งหมด เพราะ Canvas มีเครื่องมือสำหรับช่วย Debug แอปโดยตรง
จุดสำคัญที่สุดคือ
อย่าสั่ง Gemini เพียงว่า “แอป Error ช่วยแก้ให้หน่อย”
เพราะคำสั่งกว้างเกินไปและอาจทำให้ Gemini แก้ Code จำนวนมากโดยไม่จำเป็น
Workflow ที่ดีกว่าคือ
ทำให้ Error เกิดซ้ำ → เปิด Console → อ่าน Error → ระบุ Component ที่มีปัญหา → ให้ Gemini แก้เฉพาะจุด → Preview ใหม่ → ทดสอบซ้ำ
Gemini Canvas ช่วยให้กระบวนการ Debug ง่ายขึ้นมาก เพราะสามารถใช้ AI ช่วยอ่าน Error และแก้ Code ได้โดยไม่จำเป็นต้องเข้าใจทุกบรรทัดตั้งแต่แรก
Debug คือกระบวนการค้นหาและแก้ปัญหาในโปรแกรมหรือแอป
ตัวอย่างเช่น
แอปควรทำงานแบบนี้
กรอกข้อมูล → กด Save → ข้อมูลปรากฏ
แต่สิ่งที่เกิดขึ้นจริงคือ
กรอกข้อมูล → กด Save → ไม่มีอะไรเกิดขึ้น
นี่คือ Bug
การ Debug คือหาว่า
ทำไม Save ไม่ทำงาน
แล้วแก้เฉพาะสาเหตุนั้น
ไม่ใช่สร้างแอปใหม่ทั้งหมด
ก่อนแก้ต้องรู้ว่าปัญหาอยู่ประเภทไหน
Code เขียนไม่ถูกตามกฎของภาษา
เช่น
มักทำให้แอปไม่สามารถ Compile หรือ Render ได้
Code เริ่มทำงานได้ แต่เกิด Error ระหว่างทำงาน
เช่น
อันตรายกว่า Error ที่มองเห็น
เพราะ App สามารถทำงานได้ แต่ผลลัพธ์ผิด
ตัวอย่าง
Income = 1,000
Expense = 300
แต่ Balance แสดง 1,300
ไม่มี Error Message
แต่ Logic ผิด
Function ทำงานแต่หน้าเว็บมีปัญหา
เช่น
แต่ Logic อาจถูกต้องทั้งหมด
ก่อนให้ AI ช่วยแก้ ควรหาวิธีทำให้ Error เกิดซ้ำได้
ตัวอย่าง
ตอนนี้เรามี Steps to Reproduce แล้ว
ถ้ารู้ว่า Error เกิดอย่างไร
หลังแก้สามารถทำขั้นตอนเดิมอีกครั้งเพื่อดูว่า Bug หายจริงหรือไม่
นี่เป็นพื้นฐานของ Debug ที่ดี
Canvas มี Preview สำหรับทดลอง App ที่สร้างขึ้น
ใช้ Preview เหมือนเป็น User จริง
แล้วสังเกตว่า Error เกิดตรงไหน
แอปที่ดูสวยอาจมี Function เสียหลายจุด
ต้องลองใช้งานจริง
เมื่อ Preview มี Error หนึ่งในจุดแรกที่ควรเปิดคือ
Show console
Console ใช้ดู
เปิด App ใน Canvas
จากนั้นมองบริเวณด้านขวาบนของ Canvas แล้วเลือก
Show console
หากมี Error ระบบอาจแสดงรายละเอียดที่ช่วยระบุสาเหตุ
ตัวอย่าง Error ที่อาจพบ
ReferenceErrorอาจหมายถึง Code เรียกตัวแปรหรือ Function ที่ไม่มี
TypeErrorมักเกี่ยวกับการใช้ค่าหรือ Object ผิดประเภท
undefinedCode กำลังพยายามใช้ข้อมูลที่ยังไม่มี
nullค่าที่คาดว่าจะมี แต่ตอนนั้นไม่มี
อาจเกี่ยวกับ Request หรือ Service
อาจเกี่ยวกับ Package หรือ Import
ไม่จำเป็นต้องจำ Error ทุกประเภท
สามารถ Copy Error แล้วให้ Gemini ช่วยอธิบายได้
แทนที่จะบอกว่า
“มัน Error”
ให้บอกข้อมูลครบ
“เมื่อกดปุ่ม Save ใน Preview แล้วข้อมูลไม่ถูกเพิ่ม Console แสดง Error ต่อไปนี้: [Error] ช่วยวิเคราะห์ Root Cause ก่อน แล้วแก้เฉพาะส่วนที่ทำให้ Save ไม่ทำงาน ห้ามเปลี่ยน UI และ Feature อื่น”
Prompt นี้ให้ Gemini รู้
ทำให้ Debug แม่นกว่ามาก
อย่ารีบให้ Gemini Rewrite Code
สามารถสั่งว่า
“อธิบายก่อนว่า Error เกิดจากอะไร แล้วเสนอส่วน Code ที่ต้องแก้”
ช่วยให้เราเข้าใจว่า Bug อยู่ที่
ก่อนแก้จริง
แม้ไม่ใช่ Developer ก็จะเข้าใจระบบทีละส่วนมากขึ้น
นี่คือหนึ่งในคำสั่งที่ควรใช้บ่อยที่สุด
“แก้เฉพาะฟังก์ชัน Add Transaction ห้ามเปลี่ยน Layout”
หรือ
“แก้เฉพาะ Mobile Menu ห้ามเปลี่ยน Desktop”
หรือ
“แก้เฉพาะ Validation ของ Email”
“แก้ App ทั้งหมดให้ดีขึ้น”
เพราะ Scope กว้างเกินไป
อาจทำให้ Feature ที่ทำงานดีอยู่แล้วเปลี่ยนตามไปด้วย
หากเห็นชัดว่าปัญหาอยู่ที่ Component ใด สามารถใช้เครื่องมือเลือกเฉพาะส่วนนั้นใน Canvas แล้วสั่ง AI แก้
ตัวอย่าง
เลือกปุ่ม
Submit
แล้วสั่ง
“ปุ่มนี้กดแล้วไม่มีอะไรเกิดขึ้น ช่วยตรวจ Event และแก้เฉพาะ Button นี้”
หรือเลือก Form
“ตรวจ Validation ของ Form นี้ โดยห้ามแก้ Component อื่น”
วิธีนี้ช่วยลดขอบเขตการแก้ Code
หากต้องการตรวจลึกขึ้นสามารถเปิด
Code
ใน Canvas
แม้ผู้ใช้ไม่ใช่ Programmer ก็ยังมีประโยชน์ เพราะสามารถดูได้ว่า App มี Code ส่วนใดเกี่ยวข้องกับ Bug
ได้
Canvas จึงไม่ล็อกผู้ใช้ให้อยู่กับ Prompt อย่างเดียว
ถ้า App ทำงานดีอยู่ก่อน แล้วเริ่ม Error หลังเพิ่ม Feature ใหม่
ควรตรวจ
Recent changes
Version ก่อนหน้า
App ใช้งานได้
จากนั้นสั่ง
“เพิ่ม Search”
แล้ว App พัง
จุดแรกที่ควรสงสัยคือ
Code ที่เปลี่ยนตอนเพิ่ม Search
ไม่ใช่ Code ทั้งโปรเจกต์
Bug เริ่มหลังการเปลี่ยนอะไร → ตรวจการเปลี่ยนนั้นก่อน
ตัวอย่าง
App เดิมทำงาน
จากนั้นเพิ่ม
แล้ว Error
อย่าสร้างใหม่ทั้งหมด
Button ไม่ทำงานเป็นปัญหาที่พบได้บ่อย
“ปุ่ม Add กดได้แต่ไม่มี Transaction เพิ่ม Console มี Error นี้ ช่วยตรวจ Event Handler และ State ที่เกี่ยวข้อง ห้ามเปลี่ยน UI”
Form อาจไม่ทำงานเพราะ
กรอกข้อมูลครบก่อน
ถ้ายังไม่ผ่าน
ลองข้อมูลชนิดต่าง ๆ
“Form Submit ไม่ทำงานแม้กรอก Required Fields ครบ ช่วยตรวจ Validation กับ Submit Handler และแก้เฉพาะ Root Cause”
บางครั้ง Text Field แสดงแต่พิมพ์ไม่ได้
อาจเกี่ยวกับ
“ช่อง Name แสดงได้แต่พิมพ์ไม่ได้ ช่วยตรวจ State และ Input Handler ของช่องนี้เท่านั้น”
ไม่จำเป็นต้อง Rewrite Form ทั้งหมด
ตัวอย่าง
กด Add แล้วรายการเพิ่ม
แต่ Summary ยังเป็นค่าเดิม
อาจหมายถึง
“Transaction เพิ่มถูกต้อง แต่ Total Expense ไม่อัปเดต ช่วยตรวจเฉพาะ Calculation และ State ที่ใช้สร้าง Summary”
นี่คือ Logical Error
ตัวอย่าง
1000 – 300
ควรได้
700
แต่แสดง
1300
ใช้ข้อมูลเล็กที่รู้คำตอบแน่นอน
แล้วเปรียบเทียบ
“Balance ควรคำนวณ Income – Expense แต่ตอนนี้เหมือนนำมาบวกกัน ช่วยตรวจ Formula และแก้เฉพาะ Calculation Logic”
หาก App ต้องจำข้อมูล แต่ Refresh แล้วข้อมูลหาย
อาจเกิดจาก
“รายการ Transaction หายหลัง Refresh ช่วยตรวจ Data Persistence และอธิบายว่าตอนนี้ App เก็บข้อมูลไว้ที่ไหนก่อนแก้”
คำว่า
อธิบายก่อน
มีประโยชน์มาก เพราะช่วยให้รู้ว่า App ใช้ Storage แบบไหน
เมื่อ App เริ่มเก็บข้อมูลจริง ความซับซ้อนจะเพิ่มขึ้น
อาจมี Error เรื่อง
“เปิด Permission ทั้งหมด”
เพียงเพื่อให้ App ใช้งานได้
เพราะอาจสร้างปัญหาความปลอดภัย
ควรแก้ Root Cause ของสิทธิ์ให้ถูกต้อง
หากเพิ่ม Gemini Feature แล้วกด Generate ไม่มีผล
ตรวจ
“Gemini Generate Button ไม่สร้าง Output ช่วยตรวจ Console และ AI Function ที่เกี่ยวข้อง ห้ามเปลี่ยน UI และ Non-AI Features”
AI Function อาจ Run แต่ Output ไม่แสดง
อาจเกิดจาก
“Request ดูเหมือนสำเร็จแต่ Output Area ยังว่าง ช่วยตรวจว่าคำตอบถูกส่งเข้า State และ Render ถูกหรือไม่”
หาก App ทำงาน แต่ AI ตอบผิด
นี่อาจไม่ใช่ Software Error
แต่เป็น
Prompt / AI Output Quality Problem
App Product Writer ทำงานครบ
แต่ AI แต่งราคาเอง
วิธีแก้คือปรับ Prompt Constraint เช่น
“ห้ามสร้างราคา ส่วนลด หรือข้อมูลที่ผู้ใช้ไม่ได้ให้”
ไม่จำเป็นต้องแก้ Architecture ของ App
Blank Screen เป็นอาการที่ต้องดู Console ก่อน
อาจเกิดจาก
Preview ขาว
↓
Show console
↓
หา Error แรก
↓
ให้ Gemini วิเคราะห์
↓
แก้เฉพาะ Root Cause
“Preview เป็นหน้าขาวทั้งหมด Console แสดง Error นี้ ช่วยหา Error แรกที่ทำให้ App Render ไม่ได้ และแก้เฉพาะ Root Cause”
หาก App แสดง
Loading…
ตลอดเวลา
อาจเกิดจาก
“App ค้างที่ Loading หลัง Submit ช่วยตรวจ Flow ที่ตั้ง loading=true และตรวจว่ามีทุกกรณีที่ Reset กลับเป็น false หรือไม่”
นี่เป็น Prompt Debug ที่เจาะจงมากขึ้น
บางครั้ง Console มี Error 10 รายการ
อย่าแก้ทุกอันพร้อมกัน
Error แรก
เพราะ Error แรกอาจทำให้ Error หลัง ๆ เกิดตามมา
“Console มีหลาย Error ช่วยเรียงตาม Root Cause ที่น่าจะเกิดก่อน และแก้ Error หลักเพียงตัวแรกก่อน”
จากนั้น Test ใหม่
จำนวน Error อาจลดเอง
ไม่ใช่ Warning ทุกตัวทำให้ App พัง
แต่ควรอ่าน
มักสำคัญกว่า
อาจเป็น
ให้แก้ Error ที่ทำให้ Function พังก่อน
แล้วค่อย Cleanup Warning
สมมติมี
ควรแก้ตามลำดับ
Save
Mobile Menu
Chart
Footer
โดยเฉพาะ Functional Bug ต้องมาก่อน Design Issue
สามารถแบ่งเป็น
App เปิดไม่ได้
Core Function ใช้ไม่ได้
Feature รองมีปัญหา
Design หรือ Cosmetic Issue
แก้ตามลำดับ
Critical → High → Medium → Low
ไม่ควรเสียเวลาแก้สี Button ขณะที่ Save ใช้งานไม่ได้
หาก App ซับซ้อนมาก ให้แยกปัญหาให้เล็กที่สุด
ตัวอย่าง Chart ไม่ทำงาน
แทนทดสอบทั้ง Dashboard
ให้ถามว่า
“แยก Root Cause ของ Chart โดยตรวจ Data Input, Transformation และ Rendering ทีละขั้น โดยยังไม่แก้ Code จนกว่าจะระบุจุดเสียได้”
ช่วยหลีกเลี่ยงการเดา
Bug หลายครั้งเกิดจาก Input
ตัวอย่าง
App คาดว่า
Amount = Number
แต่ได้รับ
“500 บาท”
เป็น Text
“ตรวจว่าปัญหานี้เกิดจาก Input Type หรือ Logic ก่อน แล้วเพิ่ม Validation หากจำเป็น”
App อาจคาดว่า Data เป็น
name
แต่ข้อมูลจริงใช้
fullName
หรือคาดว่า
amount
แต่ได้รับ
totalAmount
ทำให้ Error แม้ Logic ถูก
“ตรวจ Data Shape ที่ Component นี้ต้องการกับ Data ที่ได้รับจริง และระบุ Field ที่ไม่ตรงกัน”
App แบบ Interactive มักใช้ State จำนวนมาก
Bug เช่น
อาจเกี่ยวกับ State
“ตรวจ State Flow ตั้งแต่ Input → Submit → Update → Render และหาจุดที่ข้อมูลหยุดเปลี่ยน”
เป็นวิธีให้ AI Debug แบบเป็นขั้นตอน
หาก Button กดไม่ได้หรือ Function ไม่ทำงาน
ตรวจ Event เช่น
“ตรวจ Event Flow ของปุ่ม Generate ตั้งแต่ Click ไปจนถึง Function ที่ถูกเรียก และระบุว่าขาดขั้นตอนไหน”
AI, API และ Database มักใช้ Async Operation
Bug ที่พบบ่อย
“ตรวจ Async Flow ของฟังก์ชันนี้ โดยเน้น await, try/catch และ loading state”
Function ที่เชื่อม Service ภายนอกควรมี Error Handling
“เพิ่ม Error Handling เฉพาะ Function นี้ด้วย try/catch และแสดง User-friendly message โดยไม่ซ่อน Technical Error จาก Console”
จุดสำคัญคือ
User เห็นข้อความง่าย
Developer ยังเห็น Error จริงใน Console
วิธีแก้ที่ไม่ดีคือ Catch Error แล้วไม่ทำอะไร
เพราะ Bug ยังอยู่ เพียงแต่ไม่เห็น
“ไม่ต้องแสดง Error”
“จัดการ Error ให้เหมาะสม แต่ยัง Log Technical Detail ใน Console”
ช่วยให้ Debug ต่อได้
หลัง Gemini แก้ Bug
ให้ทำ Steps to Reproduce เดิม
ตัวอย่าง
ก่อนแก้
หลังแก้
ทำ 1–3 เหมือนเดิม
หากรายการเพิ่ม
Bug อาจถูกแก้
แต่ยังไม่จบ
ต้อง Test รอบอื่นด้วย
Regression คือปัญหาที่การแก้ Bug หนึ่งทำให้ Feature อื่นพัง
ตัวอย่าง
แก้ Save สำเร็จ
แต่ Delete กลับใช้ไม่ได้
ตาม Feature หลักของ App
ถ้า Save ทำงานแล้ว
ลอง
เพื่อดูว่า Bug ถูกแก้จริงหรือเพียงกรณีเดียว
เมื่อ Gemini แก้ Code แล้วสามารถดู Recent changes เพื่อดูว่าแก้อะไรไป
ถามตัวเองว่า
การเปลี่ยนนี้เกี่ยวข้องกับ Bug จริงไหม
หาก Gemini เปลี่ยน 15 Component เพื่อแก้ Button หนึ่งปุ่ม
ควรระวัง
มักมี Scope ใกล้เคียงกับ Root Cause
ไม่จำเป็นต้องแก้ทับต่อไปเรื่อย ๆ
หาก Version ใหม่สร้าง Bug มากขึ้น
ให้กลับไป Version ก่อนหน้า แล้วลอง Prompt ใหม่ที่ Scope เล็กกว่า
“Version ก่อนหน้าใช้งานได้ ยกเว้น Filter ช่วยแก้เฉพาะ Filter โดยห้าม Refactor Component อื่น”
ดีกว่าแก้ต่อจาก Version ที่เสียหลายจุด
Debug กับ Refactor เป็นคนละงาน
ทำให้ Function กลับมาทำงาน
ทำ Code ให้สะอาดขึ้นโดยไม่เปลี่ยน Behavior
ถ้าทำพร้อมกันจะยากต่อการรู้ว่าอะไรทำให้ Bug หายหรือเกิดใหม่
Debug ให้ผ่านก่อน
แล้วค่อย Refactor
หาก Desktop ใช้ได้แต่มือถือไม่ได้
ให้ระบุ Scope
“App ใช้งานได้บน Desktop แต่ Mobile Menu เปิดไม่ได้ ช่วยตรวจเฉพาะ Mobile Navigation และ Responsive Event โดยห้ามเปลี่ยน Desktop”
อย่าสั่งแก้ทั้ง Responsive Design หากมีปัญหาเพียง Menu
หาก App ใช้ได้ Browser หนึ่งแต่ไม่ได้อีก Browser
อาจเกี่ยวกับ
ควรบอก Gemini ว่า
Browser ไหนใช้ได้ และ Browser ไหนไม่ได้
เพื่อช่วยลด Scope
ถ้า App ต้องโหลด Service แล้ว Network มีปัญหา
Code อาจถูกต้อง
อย่า Rewrite Code ทันทีหาก Error ระบุปัญหา Network ชัดเจน
บางครั้งปัญหาอาจไม่ได้มาจาก Code ของ App แต่เกิดจาก Environment หรือ Service ชั่วคราว
สัญญาณเช่น
ก่อน Rewrite Code ขนาดใหญ่
ถ้าสงสัยว่า Environment มีปัญหา
ลองสร้าง App ง่ายมาก
เช่น
“สร้างปุ่มที่กดแล้วตัวเลขเพิ่ม 1”
หาก App ง่ายนี้ยัง Preview ไม่ได้
ปัญหาอาจไม่ใช่ Code ของ Project หลัก
วิธีนี้ช่วยแยกระหว่าง
App Bug
กับ
Environment Problem
ลองตรวจตามลำดับ
หาก Project อื่นก็มีอาการเหมือนกัน อาจเป็นปัญหาของบริการหรือ Environment ชั่วคราว
หากแอปมี Code จำนวนมาก
ไม่ควรลบแล้วเริ่มใหม่ทันที
เพราะอาจเสีย
ควร Debug และตรวจ Environment ก่อน
ทุกครั้งก่อนเพิ่ม Feature ใหญ่
ควรรู้ว่า Version ล่าสุดที่ใช้งานได้คือไหน
ตัวอย่าง
v1 – Core App Works
v2 – Search Works
v3 – AI Added
ถ้า v3 พัง
สามารถเปรียบเทียบกับ v2 ได้
ทำให้ Debug ง่ายขึ้นมาก
นี่เป็นเทคนิคที่มีประโยชน์มาก
“วิเคราะห์ Error นี้ก่อน ห้ามแก้ Code ยัง ระบุ Root Cause ที่เป็นไปได้ 3 อันดับ และบอกว่าควรตรวจส่วนไหนก่อน”
ทำให้เราไม่ปล่อยให้ AI แก้แบบเดา
หลังรู้ Root Cause
ใช้
“แก้ Code ให้น้อยที่สุดเพื่อแก้ Error นี้ โดยห้าม Refactor หรือเปลี่ยน UI”
Small Fix
ดีกว่า
Big Rewrite
ในการ Debug
หลังแก้เสร็จ
สั่ง
“สรุปว่าคุณเปลี่ยน Code จุดไหน ทำไม และควร Test อะไรต่อ”
ช่วยให้ผู้ใช้เข้าใจการเปลี่ยนแปลงและเตรียม Regression Test ได้ดีขึ้น
ใช้สูตร
ปัญหา + ขั้นตอนที่ทำให้เกิด + Expected + Actual + Error + Scope
“ใน App นี้ เมื่อฉัน [ขั้นตอน] ฉันคาดว่าจะ [Expected] แต่ตอนนี้ [Actual] และ Console แสดง [Error] ช่วยวิเคราะห์ Root Cause ก่อน แล้วแก้เฉพาะ [Component/Function] ห้ามเปลี่ยน [ส่วนที่ต้องรักษา]”
นี่เป็น Template ที่ใช้ Debug ได้กับ Bug จำนวนมาก
กด Add แล้วรายการไม่เพิ่ม
“ใน Expense Tracker เมื่อกรอก Amount 500 เลือก Expense แล้วกด Add ฉันคาดว่าจะเห็นรายการใหม่และ Total Expense เพิ่ม 500 แต่ตอนนี้ไม่มีรายการเพิ่ม Console แสดง Error นี้ ช่วยวิเคราะห์ Root Cause แล้วแก้เฉพาะ Add Transaction Flow ห้ามเปลี่ยน Layout, Filter และ Delete”
ชัดกว่าคำว่า
“Expense Tracker ใช้ไม่ได้”
คำนวณผิด
“Loan Calculator Run ได้แต่ Monthly Payment ไม่ตรงกับสูตร ช่วยตรวจ Calculation Formula เท่านั้น ใช้ Input 100000, Interest 5%, 5 Years เป็น Test Case และห้ามเปลี่ยน UI”
มี Test Case ชัดเจน
Generate ค้าง
“เมื่อกด Generate หลังกรอก Topic แล้ว App ค้างที่ Loading ตลอด ช่วยตรวจ async flow ของ Gemini generation, error handling และจุดที่ reset loading state โดยห้ามเปลี่ยน Prompt Logic และ UI”
ตรงกับอาการมาก
ปุ่มล้นจอ
“บน Desktop Layout ถูกต้อง แต่หน้าจอมือถือกว้างประมาณ 390px ปุ่ม CTA ล้นด้านขวา ช่วยแก้เฉพาะ Responsive CSS ของ CTA Container ห้ามเปลี่ยน Desktop Layout”
ยิ่งบอก Context ชัด ยิ่งควบคุมผลลัพธ์ได้ดี
ใช้ลำดับนี้เมื่อ App Error
ทำให้ Bug เกิดซ้ำ
ดูอาการ
เปิด Error และ Logs
ระบุ Component
ให้ Gemini หา Root Cause
แก้เฉพาะจุด
เปิดใหม่
ทำขั้นตอนเดิม
Test Feature อื่น
ตรวจการเปลี่ยน Code
เก็บ Version ที่ใช้ได้
สูตรนี้มีประสิทธิภาพกว่าการสั่ง
“แก้ทุกอย่าง”
มาก
“วิเคราะห์ Error ใน Console นี้ก่อน ห้ามแก้ Code จนกว่าจะระบุ Root Cause และ Component ที่เกี่ยวข้อง”
“Preview เป็นหน้าขาว ช่วยตรวจ Error แรกใน Console ที่ทำให้ App Render ไม่ได้ และแก้ Root Cause เท่านั้น”
“ปุ่มนี้กดแล้วไม่เกิด Action ช่วยตรวจ onClick และ Function ที่เกี่ยวข้อง ห้ามเปลี่ยน Design”
“Form Submit ไม่ทำงาน ช่วยตรวจ Validation และ Submit Handler โดยแก้เฉพาะส่วนที่จำเป็น”
“App Run ได้แต่ Calculation ผิด ช่วยตรวจ Formula เท่านั้นและสร้าง Test Case เพื่อตรวจผล”
“ข้อมูลหายหลัง Refresh ช่วยอธิบาย Storage ปัจจุบันก่อน แล้วแก้ Data Persistence โดยห้ามเปลี่ยน UI”
“AI Generation ค้างที่ Loading ช่วยตรวจ Async Flow, Error Handling และ Loading State โดยห้ามเปลี่ยน Prompt ของ AI”
“แก้เฉพาะ Mobile Layout ที่มีปัญหา ห้ามเปลี่ยน Desktop”
ข้อมูลไม่พอ
AI ต้องเดา
เสี่ยง Bug ใหม่
หาสาเหตุยาก
ไม่รู้ว่า Bug หายจริงไหม
แก้หนึ่งอย่างพังอีกอย่าง
ผิดลำดับความสำคัญ
Bug ยังอยู่
เปลี่ยนมากเกินไป
ต้องทดลองจริง
รู้ขั้นตอนที่ทำให้ Error เกิด
รู้ว่าควรเกิดอะไร
รู้ว่าเกิดอะไรแทน
มี Error ไหม
จำกัด Scope
ดู Recent changes
ทำ Steps เดิม
ตรวจอีกครั้ง
Regression Test
ถ้าเกี่ยวข้อง
Test ด้วยค่าที่รู้คำตอบ
AI เปลี่ยนมากเกินไปหรือไม่
สำคัญก่อนเพิ่ม Feature ใหม่
ได้ สามารถเปิด Show console เพื่อดู Errors และ Logs จาก Preview
ได้ บนคอมพิวเตอร์สามารถเปิด Code View และแก้ Code โดยตรงได้
ได้ สามารถเปิด Code และดู Recent changes เพื่อช่วยติดตามการแก้ล่าสุด
ได้ สามารถส่ง Error และอธิบายอาการให้ Gemini ช่วยหา Root Cause และแก้ Code ได้
ควรให้ Steps to Reproduce, Expected Result, Actual Result, Error Message และ Component ที่เกี่ยวข้อง
โดยทั่วไปไม่ควร หาก Bug อยู่เพียงจุดเดียว ควรแก้เฉพาะ Root Cause ก่อน
เปิด Show console แล้วตรวจ Error แรกที่เกี่ยวข้องกับ Rendering จากนั้นให้ Gemini ช่วยวิเคราะห์
นี่อาจเป็น Logical Error ต้องสร้าง Test Case ที่รู้คำตอบและตรวจ Formula
ไม่เสมอไป หาก Function ทำงานแต่ Output ไม่ดี อาจเป็น Prompt หรือ AI Quality Problem มากกว่า Software Bug
ควร เพราะการแก้ Code หนึ่งส่วนอาจทำให้ Function อื่นเกิด Regression
เมื่อ App ใน Gemini Canvas มี Error สิ่งที่ไม่ควรทำเป็นอันดับแรกคือ
ลบแล้วสร้างใหม่
หรือ
สั่ง Gemini ให้แก้ทั้ง App
วิธีที่ควรใช้คือ
Reproduce → Preview → Show console → อ่าน Error → ระบุ Scope → ให้ AI วิเคราะห์ Root Cause → Minimal Fix → Retest → Regression Test
บน Canvas สามารถใช้เครื่องมือสำคัญอย่าง
Preview
สำหรับทดลอง App
Show console
สำหรับดู Errors และ Logs
Code
สำหรับดูหรือแก้ Code
Recent changes
สำหรับตรวจสิ่งที่เปลี่ยนล่าสุด
และ
Select and ask
สำหรับเลือก Component เฉพาะส่วนแล้วให้ Gemini แก้
Prompt Debug ที่มีประสิทธิภาพควรมีข้อมูลแบบนี้
เกิดอะไร → ทำอย่างไรถึงเกิด → ควรเกิดอะไร → เกิดอะไรแทน → Console บอกอะไร → ต้องแก้เฉพาะส่วนไหน
ตัวอย่าง
“เมื่อกด Save หลังกรอกข้อมูลครบ ฉันคาดว่าจะมีรายการใหม่ แต่ไม่มีอะไรเกิดขึ้น Console แสดง Error นี้ ช่วยวิเคราะห์ Root Cause และแก้เฉพาะ Save Function ห้ามเปลี่ยน UI”
นี่ดีกว่า
“แอป Error แก้ให้หน่อย”
อย่างมาก
และหลัง Gemini บอกว่าแก้แล้ว ต้องจำหลักสำคัญที่สุดไว้ว่า
AI บอกว่าแก้แล้ว ≠ Bug หายแล้ว
ต้อง Preview และ Test ด้วยตัวเองอีกครั้งเสมอ
เมื่อ Debug แบบจำกัด Scope และแก้ทีละจุด Gemini Canvas จะช่วยให้แม้แต่ผู้ที่ไม่ได้เป็น Developer เต็มตัวสามารถค่อย ๆ หา Bug เข้าใจ Error และพัฒนา App Prototype ให้มีความเสถียรมากขึ้นได้โดยไม่ต้องเริ่ม Project ใหม่ทุกครั้ง