กำไร:
- ความสามารถในการจำกัดสาเหตุที่เป็นไปได้ให้แคบลงอย่างรวดเร็วโดยมอบบันทึกข้อขัดข้อง (สแต็กเทรซ) ให้กับปัญญาประดิษฐ์ด้วยโค้ดที่เกี่ยวข้องและบริบทของสถานการณ์
- ความสามารถในการแก้ไขสาเหตุที่แท้จริงอย่างถาวร แทนที่จะตรวจสอบการวินิจฉัยของ AI เพื่อเป็นสมมติฐานในการเขียนโค้ดและการทดสอบและการปิดเสียงอาการ
- ปกป้องความเป็นส่วนตัวขณะแก้ไขข้อบกพร่องด้วยการปกปิดข้อมูลส่วนบุคคลในบันทึกข้อขัดข้องและบันทึก
ทุกแอปพลิเคชันมีข้อผิดพลาด สิ่งที่ทำให้นักพัฒนาที่ดีแตกต่างก็คือความรวดเร็วในการค้นหาและแก้ไขจุดบกพร่อง การแก้ไขจุดบกพร่องบนมือถือ — การค้นหาและแก้ไขสาเหตุของปัญหา — เป็นเรื่องยากอย่างยิ่งเนื่องจากข้อผิดพลาดเกิดขึ้นบนอุปกรณ์ของผู้ใช้ ในสภาพแวดล้อมที่คุณไม่สามารถมองเห็นได้ โดยส่วนใหญ่แล้ว สิ่งที่คุณมีก็แค่บันทึกข้อขัดข้อง (บันทึกข้อขัดข้อง / การติดตามสแต็ก — รายละเอียดทางเทคนิคว่าแอปพลิเคชันไปอยู่ที่ไหนเมื่อเกิดข้อขัดข้อง) AI มีประสิทธิภาพอย่างมากในการอ่านบันทึกที่เป็นความลับเหล่านี้ ระบุสาเหตุที่เป็นไปได้ และเสนอแนวทางแก้ไข ในหน่วยนี้ เราจะได้เรียนรู้วิธีใช้ AI เป็น "การตรวจจับจุดบกพร่อง" แต่ให้คุณมีหน้าที่ตรวจสอบการวินิจฉัยและแก้ไขขั้นสุดท้าย
การอ่านบันทึกข้อขัดข้อง: ตำแหน่งที่ AI ส่องสว่างที่สุด
บันทึกข้อขัดข้องเป็นข้อความที่ยาวและน่ากลัว นักพัฒนาที่ไม่มีประสบการณ์จะไม่รู้ว่าจะต้องดูที่ไหน AI แยกวิเคราะห์ข้อความนี้ในไม่กี่วินาที: บรรทัดไหนที่ข้อความขัดข้อง มีข้อยกเว้นใดเกิดขึ้น สาเหตุที่เป็นไปได้คืออะไร ข้อผิดพลาดมือถือทั่วไปนั้นชัดเจนและ AI จดจำได้อย่างรวดเร็ว: NullPointerException (พยายามเข้าถึงค่า null), IndexOutOfBoundsException (เข้าถึงองค์ประกอบรายการที่ไม่มีอยู่จริง) บน Android, EXC_BAD_ACCESS (เข้าถึงหน่วยความจำที่ว่าง) บน iOS, พบศูนย์โดยไม่คาดคิด (บังคับให้ไม่มีตัวเลือก)
ประเภทของการขัดข้องบนมือถือที่พบบ่อยที่สุดและสาเหตุทั่วไปมีดังนี้:
ข้อผิดพลาด (ข้อยกเว้น)
แพลตฟอร์ม
สาเหตุทั่วไป
NullPointerException
หุ่นยนต์
การเข้าถึงค่าว่าง
IndexOutOfBoundsException
หุ่นยนต์
การเข้าถึงองค์ประกอบรายการที่ไม่มีอยู่จริง
ไม่พบโดยไม่คาดคิด
ไอโอเอส
บังคับให้แกะตัวเลือกที่ไม่มีเลย (!)
EXC_BAD_ACCESS
ไอโอเอส
การเข้าถึงหน่วยความจำที่ว่าง
ANR/หยุด
หุ่นยนต์
การประมวลผลแบบยาว/หนักบนเธรดหลัก
ขั้นตอนการแก้ไขข้อบกพร่องทีละขั้นตอน:
- รวบรวมบันทึก รวบรวมบันทึกข้อขัดข้อง ข้อความแสดงข้อผิดพลาด และขั้นตอนในการทำซ้ำหากเป็นไปได้
- ให้บริบท AI บอกฉันไม่ใช่แค่ข้อผิดพลาด แต่รวมถึงโค้ดที่เกี่ยวข้องและสิ่งที่ทำให้เกิดปัญหา
- ถามถึงสาเหตุที่เป็นไปได้. “บอกสาเหตุที่เป็นไปได้สูงสุด 3 ประการให้ฉันทราบ และวิธีตรวจสอบแต่ละรายการ”
- ตรวจสอบ. ยืนยันเหตุผลที่เสนอในโค้ดและการทดสอบ อย่าแก้ไขด้วยการคาดเดา
- แก้ไขและทดสอบอีกครั้ง ตรวจสอบว่าข้อผิดพลาดหายไปแล้วจริง ๆ และไม่มีการสร้างข้อผิดพลาดใหม่
เคล็ดลับ: เมื่อมอบบันทึกข้อขัดข้องให้กับ AI ให้รวมข้อมูลโค้ดที่เกี่ยวข้องด้วย AI จะทำการคาดการณ์ทั่วไปด้วยการติดตามสแต็กเท่านั้น เมื่อคุณเห็นโค้ด ความน่าจะเป็นในการค้นหาบรรทัดที่แน่นอนและสาเหตุที่แท้จริงจะเพิ่มขึ้นอย่างมาก บริบทเป็นตัวกำหนดคุณภาพของการวินิจฉัย
กับดักข้อมูลส่วนบุคคล
บันทึกข้อขัดข้องและบันทึกมักจะมีข้อมูลผู้ใช้ เช่น อีเมล ID ผู้ใช้ สถานที่ แม้แต่เนื้อหาในแบบฟอร์ม การวางบันทึกนี้ลงใน AI เช่นเดียวกับที่เป็นอยู่เป็นการรั่วไหลของข้อมูลส่วนบุคคลไปยังบุคคลที่สามและเป็นการละเมิด KVKK / GDPR ล้าง (ปกปิด) พื้นที่ส่วนบุคคลก่อนส่งการบันทึก นอกจากนี้ โปรดระวังอย่าเขียนข้อมูลส่วนบุคคลลงในบันทึกของแอปพลิเคชันของคุณตั้งแต่ต้น บันทึกที่ดีจะอธิบายถึงปัญหาแต่ไม่ได้เปิดเผยตัวตน
ข้อควรระวัง: การแก้ไขที่แนะนำโดย AI อาจ “ปิดเสียงข้อบกพร่อง” แต่อาจไม่สามารถแก้ไขสาเหตุที่แท้จริงได้ ตัวอย่างเช่น การล้อม NullPointerException ด้วยการตรวจสอบค่า null จะหยุดความผิดพลาด แต่หากคุณไม่ทราบว่าเหตุใดค่าจึงเป็น null ข้อผิดพลาดตรรกะที่แท้จริงจะดำเนินต่อไป รักษาโรคไม่ใช่อาการ
การวิเคราะห์สาเหตุที่แท้จริง
จุดมุ่งหมายของการแก้ไขข้อบกพร่องอย่างมืออาชีพไม่ใช่การปิดบังข้อผิดพลาด แต่เพื่อค้นหาสาเหตุที่แท้จริง ฉันถาม AI ว่า "ทำไมสิ่งนี้ถึงเป็นโมฆะ มันจะหายไปตรงไหนในกระแสข้อมูล" ถามว่า “ฉันจะปิดเรื่องนี้ได้อย่างไร” มันมีค่ามากกว่าการถามมาก เมื่อพบสาเหตุที่แท้จริงแล้ว ข้อผิดพลาดเดียวกันหลายสิบรูปแบบจะได้รับการแก้ไขในคราวเดียว AI เชี่ยวชาญในการใช้เหตุผลลูกโซ่นี้: ติดตามข้อมูลจากอินพุตไปยังเอาต์พุต และขอให้คิดว่ามันพังตรงไหน
มินิเคสสามอัน
กรณีที่ 1 — ทำงาน 2 ชั่วโมงใน 10 นาที นักพัฒนาใช้เวลา 2 ชั่วโมงในการค้นหาจุดบกพร่องที่เกิดกับ Samsung รุ่นใดรุ่นหนึ่งเท่านั้น มอบบันทึกข้อขัดข้อง (การล้างพื้นที่ส่วนบุคคล) ให้กับ AI YZ กล่าวว่าข้อผิดพลาดชี้ไปที่หน่วยความจำล้นซึ่งเกิดขึ้นกับความละเอียดกล้องที่แตกต่างกันของอุปกรณ์นั้น พร้อมเบาะแสก็พบสาเหตุใน 10 นาที AI เร่งการค้นหา โดยมนุษย์ยืนยันวิธีแก้ปัญหา
กรณีที่ 2 — จุดบกพร่องที่ถูกเงียบกลับมาแล้ว ทีมหนึ่งปิดปากการชนที่เกิดซ้ำโดยใช้คำแนะนำของ AI เพื่อลองจับมัน การขัดข้องหยุดลง แต่ผู้ใช้เริ่มบ่นว่า "ข้อมูลไม่บันทึก"; เพราะปัญหาที่แท้จริง (การเชื่อมต่อฐานข้อมูล) ยังคงมีอยู่ มันจึงกลายเป็นสิ่งที่มองไม่เห็น เมื่อพบสาเหตุที่แท้จริงแล้ว ทั้งข้อขัดข้องและการสูญหายของข้อมูลก็ได้รับการแก้ไข บทเรียน: ความเงียบไม่ได้ช่วยแก้ปัญหา
กรณีที่ 3 — ข้อมูลรั่วไหลในบันทึก การตรวจสอบพบว่าชื่อเต็มและหมายเลขโทรศัพท์ของผู้ใช้ถูกเขียนลงในบันทึกข้อขัดข้องของแอป นักพัฒนามักจะวางบันทึกเหล่านี้ลงใน AI และแก้ไขข้อบกพร่อง ข้อมูลส่วนบุคคลจึงถูกเผยแพร่เป็นเวลาหลายเดือน บันทึกถูกปกปิดและกระบวนการได้รับการแก้ไขแล้ว บทเรียน: การรักษาความลับมีผลแม้ในขณะที่ทำการดีบัก
พรอมต์อ่อน / พรอมต์แข็งแกร่ง
พรอมต์ที่ไม่ดี: "เหตุใดข้อผิดพลาดนี้จึงเกิดขึ้น [การติดตามสแต็ก]"
ข้อความแจ้งที่รัดกุม: "ข้อขัดข้องนี้เกิดขึ้นในแอป Android ของฉัน บริบท:- ขณะทำ: ผู้ใช้เพิ่มลงในรถเข็นจากรายละเอียดผลิตภัณฑ์- เฉพาะในอุปกรณ์บางรุ่น รุ่น RAM ต่ำ- รหัสที่เกี่ยวข้อง: [ViewModel และส่วนพื้นที่เก็บข้อมูล]- บันทึกข้อขัดข้อง (ข้อมูลส่วนบุคคลถูกล้าง): [ติดตามสแต็ก]แสดงรายการสาเหตุที่แท้จริง 3 ประการที่เป็นไปได้มากที่สุด สำหรับแต่ละ:1) ฉันจะตรวจสอบได้อย่างไร 2) การแก้ไขถาวร (ไม่ปิดเสียง) ระบุสมมติฐานของคุณในกรณีที่คุณไม่แน่ใจ"
เทมเพลตที่คัดลอกได้
เทมเพลตการวิเคราะห์ข้อขัดข้อง:"วิเคราะห์ข้อขัดข้องต่อไปนี้ บริบท: [คุณกำลังทำอะไร อุปกรณ์/เวอร์ชันใด] รหัสที่เกี่ยวข้อง: [รหัส] บันทึกข้อขัดข้อง (ล้างข้อมูลส่วนบุคคลแล้ว): [ติดตาม] ให้สาเหตุที่เป็นไปได้มากที่สุด 3 ข้อและการยืนยัน + การแก้ไขถาวรสำหรับแต่ละข้อ นอกจากนี้ ทำเครื่องหมายวิธีแก้ไขปัญหาเฉพาะหน้าที่ทำให้อาการเงียบลง"
เทมเพลตสาเหตุหลัก: "ค่านี้มา [null/false] โดยไม่คาดคิด ติดตามกระแสข้อมูลจากอินพุตไปยังจุดนี้: ข้อมูลสูญหายหรือเสียหายได้ที่ไหน บอกฉันว่าฉันควรตรวจสอบที่ไหนในแต่ละขั้นตอน [รหัส]"
เทมเพลตการอ่านบันทึก: "ตีความผลลัพธ์ของบันทึกนี้: เหตุการณ์ใดที่เกิดขึ้นตามลำดับ ความผิดปกติอยู่ที่ไหน ขั้นตอนสุดท้ายที่ดีต่อสุขภาพก่อนเกิดข้อผิดพลาดคืออะไร [บันทึก — ข้อมูลส่วนบุคคลถูกล้าง]"
เทมเพลตการทำซ้ำ: "ฉันควรพยายามขั้นตอน สถานะอุปกรณ์ และข้อมูลใดเพื่อสร้างข้อผิดพลาดนี้ซ้ำอย่างน่าเชื่อถือ แสดงรายการเงื่อนไขที่อาจทำให้เกิดข้อผิดพลาดตามลำดับความน่าจะเป็น [คำอธิบาย]"
ข้อผิดพลาดทั่วไป
- ให้การติดตามสแต็กแบบไม่มีบริบท หากไม่มีรหัสและสถานการณ์ที่เกี่ยวข้อง AI จะทำการคาดการณ์ทั่วไป
- วางข้อมูลส่วนบุคคลลงใน AI พร้อมกับบันทึก การละเมิดการรักษาความลับ; หน้ากากก่อน
- ระงับอาการ. การซ่อนข้อขัดข้องด้วย try-catch จะทำให้เกิดปัญหาที่ต้นตอและสร้างปัญหาใหม่ขึ้นมา
- ใช้ข้อเสนอแนะแรกโดยไม่ตรวจสอบ การวินิจฉัยโรค AI เป็นเพียงสมมติฐานเท่านั้น ยืนยันในรหัส
- กำลังพยายามทำซ้ำในโปรแกรมจำลอง ข้อผิดพลาดบางอย่างจะปรากฏบนอุปกรณ์/สภาพจริงเท่านั้น
- ไม่ทดสอบซ้ำหลังแก้ไข การแก้ไขอาจทำให้สิ่งอื่นเสียหาย ตรวจสอบการถดถอย
โดยสรุป
หนึ่งในด้านที่ AI เป็นเลิศคือการอ่านบันทึกข้อขัดข้องและแยกแยะสาเหตุที่เป็นไปได้ คุณภาพของการวินิจฉัยจะดีขึ้นอย่างมากเมื่อมีการให้บริบท แต่การวินิจฉัยและการแก้ไขขั้นสุดท้ายเป็นของมนุษย์ คำแนะนำของ AI เป็นเพียงสมมติฐานที่ได้รับการตรวจสอบในโค้ดและการทดสอบ จุดมุ่งหมายไม่ใช่เพื่อระงับอาการแต่เพื่อแก้ไขที่ต้นเหตุ ข้อผิดพลาดที่ถูกปิดเสียงมักจะส่งคืนในรูปแบบอื่น บันทึกข้อขัดข้องอาจมีข้อมูลส่วนบุคคล ปิดบังก่อนที่จะมอบให้กับ AI และอย่าเขียนข้อมูลส่วนบุคคลในบันทึกของคุณตั้งแต่ต้น
งานสมัคร
จดบันทึกข้อขัดข้องที่คุณมี (หรือตัวอย่างที่คุณสร้างจาก AI) ปิดบังข้อมูลส่วนบุคคล/ข้อมูลที่โดดเด่นในนั้น และมอบให้กับ AI ด้วย "เทมเพลตการวิเคราะห์ข้อขัดข้อง" แยกแยะว่าสาเหตุหลักประการใดที่รายการ AI เป็นการแก้ไขจริง และสาเหตุใดเป็นเพียงการปิดเสียง ใช้การแก้ไขถาวรที่คุณเลือก และตรวจสอบว่าข้อผิดพลาดหายไปและไม่มีปัญหาใหม่เกิดขึ้น
รายการตรวจสอบ
- [ ] ฉันได้ให้บันทึกข้อขัดข้องพร้อมโค้ดที่เกี่ยวข้องและบริบทของสถานการณ์แล้ว
- [ ] ฉันปกปิดข้อมูลส่วนบุคคล/ข้อมูลเฉพาะในบันทึก
- [ ] ฉันถาม AI เกี่ยวกับสาเหตุที่แท้จริงและการแก้ไขอย่างถาวร ไม่ใช่การปิดเสียง
- [ ] ฉันตรวจสอบการวินิจฉัยด้วยโค้ดและการทดสอบ ฉันไม่ได้ใช้มันแบบสุ่มสี่สุ่มห้า
- [ ] หลังจากแก้ไข ฉันทดสอบแล้วว่าข้อผิดพลาดหายไปและไม่มีการถดถอย
- [ ] ฉันตรวจสอบว่าแอปพลิเคชันของฉันไม่ได้เขียนข้อมูลส่วนบุคคลลงในบันทึก