หน่วย
1. ปัญญาประดิษฐ์สำหรับทีมซอฟต์แวร์: รูปแบบการทำงานและขีดจำกัด 2. การเขียนสคริปต์และการเติมข้อความอัตโนมัติ 3. การอ่านโค้ด คำอธิบาย และความเข้ากันได้กับฐานโค้ดใหม่ 4. การตรวจสอบโค้ดและการค้นหาข้อผิดพลาด 5. ทดสอบการผลิตและการประกันคุณภาพ 6. การดีบักและการวิเคราะห์สาเหตุที่แท้จริง 7. การวิเคราะห์บันทึกและการสังเกต 8. การปรับโครงสร้างหนี้ใหม่และการจัดการหนี้ทางเทคนิค 9. เอกสารประกอบ README และความคิดเห็นเกี่ยวกับโค้ด 10. การใช้งานที่ปลอดภัย: ปราศจากการรั่วไหลและการรักษาความลับ 11. การตรวจสอบรหัส ช่องโหว่ และความเสี่ยงของเอาท์พุต AI 12. เครื่องมือเข้ารหัส AI และการรวมเวิร์กโฟลว์
หน่วย 4 / 12

การตรวจสอบโค้ดและการค้นหาข้อผิดพลาด

กำไร:

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

การตรวจสอบโค้ดคือเมื่อการเปลี่ยนแปลงที่เขียนโดยนักพัฒนาได้รับการตรวจสอบโดยบุคคลอื่นก่อนที่จะรวมเข้าด้วยกัน รีวิวดี; สามารถตรวจจับจุดบกพร่องได้ตั้งแต่เนิ่นๆ แบ่งปันข้อมูล และรักษาฐานโค้ดให้สอดคล้องกัน แต่การรีวิวนั้นน่าเบื่อหน่าย มักถูกรบกวน และกลายเป็นเพียงผิวเผินภายใต้แรงกดดันด้านเวลา ปัญญาประดิษฐ์เป็นตัวช่วยสองเท่าที่นี่: ช่วยให้คุณสามารถทำความสะอาดโค้ดของคุณเองล่วงหน้าที่คุณส่งเพื่อตรวจสอบและตรวจสอบ PR ของผู้อื่น (ดึงคำขอ) ด้วยสายตาที่เฉียบคมยิ่งขึ้น

ความแตกต่างที่สำคัญคือ: AI เร่งความเร็วและปรับปรุงการตรวจสอบ แต่ไม่สามารถเข้ามารับหน้าที่รับผิดชอบในการอนุมัติได้ ประโยค "AI ดูสะอาด" ไม่สนับสนุน การตัดสินใจ "รวม" ขั้นสุดท้ายขึ้นอยู่กับวิศวกรที่รู้โค้ดและบริบท

AI คืออะไรที่ดีและไม่ดีในการทบทวน

ที่ดีสำหรับ: การตรวจสอบค่า Null หายไป, ทรัพยากรรั่วไหล (ไฟล์/ลิงก์ยังคงเปิดอยู่), ข้อยกเว้นที่ไม่ถูกตรวจจับ, เงื่อนไขที่ผิดอย่างเห็นได้ชัด (>= แทนที่จะเป็น >), คำแนะนำการเปลี่ยนชื่อ, ความสามารถในการอ่าน, ตัวพิมพ์ Edge หายไป, กลิ่นด้านความปลอดภัยทั่วไป (เช่น การต่อสตริง SQL), การตรวจจับโค้ดที่ซ้ำกัน

จุดอ่อน: ข้อบกพร่องเชิงลึกที่ละเมิดกฎเกณฑ์ทางธุรกิจของคุณ แต่ต้องใช้บริบทและเวลา เช่น ตรรกะที่ถูกต้องทางวากยสัมพันธ์ การปฏิบัติตามสถาปัตยกรรม คอขวดของประสิทธิภาพจริง ข้อผิดพลาดที่เกิดขึ้นพร้อมกัน AI ยังสร้างผลบวกลวง (เข้าใจผิดว่าบางสิ่งบางอย่างจริงๆ แล้วไม่ใช่ปัญหาสำหรับปัญหา) และผลลบลวง (พลาดจุดบกพร่องจริงไป) ดังนั้น ผลลัพธ์ที่ได้จึงเป็น "รายการข้อควรระวัง" ไม่ใช่คำตัดสินขั้นสุดท้าย

ข้อควรระวัง: เพียงเพราะ AI บอกว่า "ไม่มีปัญหา" ไม่ได้พิสูจน์ว่าโค้ดนั้นถูกต้อง ผลลบลวงจะเงียบ ข้อผิดพลาดที่อันตรายที่สุดคือข้อผิดพลาดที่ไม่เคยกล่าวถึงในรีวิว

ขั้นตอนการทบทวนอย่างเป็นระบบ

  1. ให้บริบท เพิ่มวัตถุประสงค์ของการเปลี่ยนแปลง ปัญหาที่เกี่ยวข้อง และเกณฑ์การยอมรับ ถ้ามี ลงในพรอมต์ การทบทวนอย่างไม่มีจุดมุ่งหมายทำให้เกิดการตีความอย่างไม่มีจุดมุ่งหมาย
  2. แบ่งมันออกเป็นหมวดหมู่ ขอให้แบบจำลองจัดประเภทสิ่งที่ค้นพบเป็น "จุดบกพร่อง/ความปลอดภัย/ประสิทธิภาพ/ความสามารถในการอ่าน/รูปแบบ"; ดังนั้นคุณจึงแยกเสียงวิพากษ์วิจารณ์ออกจากเสียงรบกวน
  3. ขอป้ายกำกับความรุนแรง ให้คะแนนการค้นพบแต่ละรายการเป็น "สูง/ปานกลาง/ต่ำ" และระบุ "สาเหตุ" และ "การแก้ไขที่แนะนำ"
  4. กรองมันด้วยตาของคุณเอง ประเมินผลการค้นพบแต่ละรายการ: เป็นจริง (ตรวจสอบ) เป็นผลบวกลวงหรือไม่ (เขียนเหตุผล) มีอะไรขาดหายไป (เพิ่มความรู้ของคุณเอง)
  5. ตรวจสอบเส้นทางวิกฤติด้วยตนเอง อ่านและดำเนินการเส้นทางที่เกี่ยวข้องกับเงิน ตัวตน การอนุญาต และการลบข้อมูลด้วยตัวคุณเองโดยไม่ต้องพึ่งพา AI

มินิเคสสามอัน

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

กรณีที่ 2 — การกำจัดผลบวกลวง AI แจ้ง “ปัญหาด้านประสิทธิภาพที่เป็นไปได้” ในลักษณะวนซ้ำ ผู้ตรวจสอบปิดสิ่งนี้เป็นผลบวกลวง โดยรู้ว่าลูปใช้งานได้กับองค์ประกอบสูงสุด 5 รายการเท่านั้น (วนซ้ำเหนือ enum) ตัวแบบที่ไม่รู้บริบทก็เตือนว่า ผู้ที่รู้บริบทได้ตัดสินใจถูกต้อง

กรณีที่ 3 — AI พลาดข้อผิดพลาดกฎธุรกิจ แม้ว่าบัญชีส่วนลดควรมีสูงสุด 30% ตามกฎของแคมเปญ แต่รหัสจะอนุญาตได้ 50% AI ไม่เคยสังเกตเห็นข้อผิดพลาดเชิงตรรกะที่สมบูรณ์แบบทางวากยสัมพันธ์นี้ เพราะเขาไม่รู้กฎเกณฑ์ พบจุดบกพร่องในการตรวจสอบโดยเจ้าของผลิตภัณฑ์ซึ่งทราบเกณฑ์การยอมรับ บทเรียน: การตรวจสอบกฎเกณฑ์ทางธุรกิจเป็นงานของมนุษย์

เทมเพลตที่คัดลอกได้สี่แบบ

การทบทวนตามวัตถุประสงค์และจัดหมวดหมู่:

บทบาท: ผู้ตรวจสอบโค้ดที่พิถีพิถัน วัตถุประสงค์ของการเปลี่ยนแปลง: {{วัตถุประสงค์ / ปัญหา}}ตรวจสอบความแตกต่างนี้ ให้สิ่งที่ค้นพบในหมวดหมู่เหล่านี้: [ข้อบกพร่อง] [ความปลอดภัย] [ประสิทธิภาพ] [ความสามารถในการอ่าน] [สไตล์] สำหรับการค้นหาแต่ละครั้ง: ไฟล์:แถว, ความรุนแรง (สูง/ปานกลาง/ต่ำ), สาเหตุ, วิธีแก้ไขที่แนะนำ ทำเครื่องหมายว่า "เป็นไปได้" หากคุณไม่แน่ใจ คุณไม่รู้กฎเกณฑ์ทางธุรกิจ ถามฉันเกี่ยวกับสถานที่ที่ต้องมีกฎเกณฑ์{{diff}}

เพื่อเตรียมตรวจสอบโค้ดของคุณเอง:

ตรวจสอบการเปลี่ยนแปลงนี้ก่อนที่จะเปิด PR ค้นหา: null/bugcheck ที่หายไป, ทรัพยากรรั่วไหล, Edge case, ข้อมูลลับ, สาขาที่ยังไม่ทดสอบ แสดงรายการสิ่งที่ค้นพบตามลำดับความสำคัญ แนะนำให้แก้ไข 1 บรรทัดสำหรับแต่ละบรรทัด{{code}}

การตามล่าหา Edge case:

แสดงรายการอินพุตและสถานการณ์ที่ฟังก์ชันนี้อาจเสียหาย: ว่างเปล่า, เป็นโมฆะ, ใหญ่เกินไป, ลบ, การโทรพร้อมกัน, ข้อผิดพลาดของเครือข่าย, ข้อมูลบางส่วน สำหรับแต่ละกรณี ให้เขียนลักษณะการทำงานที่คาดหวังและสิ่งที่โค้ดปัจจุบันจะทำ{{function}}

การสแกนกลิ่นเพื่อความปลอดภัย (การคัดกรองล่วงหน้า):

มองหากลิ่นด้านความปลอดภัยทั่วไปในโค้ดนี้: การต่อข้อมูล SQL/คำสั่ง, อินพุตที่ไม่ได้รับการตรวจสอบ, ความลับที่ฝังไว้ไม่เปลี่ยนรูป, การดีซีเรียลไลซ์ที่ไม่ปลอดภัย, การขาดการตรวจสอบสิทธิ์ แยกสิ่งที่ค้นพบออกเป็น "แน่นอน / น่าจะเป็น / ความรู้" นี่เป็นการคัดกรองเบื้องต้น ไม่ใช่คำตัดสินขั้นสุดท้าย{{code}}

พรอมต์อ่อน / พรอมต์แข็งแกร่ง

อ่อนแอ: “มีข้อผิดพลาดในการประชาสัมพันธ์ครั้งนี้หรือไม่?”
ชัดเจน: "วัตถุประสงค์: เพิ่มคูปองส่วนลดลงในยอดรวมของรถเข็น (ส่วนลดต้องไม่เกิน 30% — คุณไม่สามารถตรวจสอบกฎนี้ได้ด้วยตัวเอง เพียงบอกฉันว่าโค้ดกำหนดขีดจำกัดบนหรือไม่) ตรวจสอบความแตกต่าง ให้ผลลัพธ์ตามหมวดหมู่ + ความร้ายแรง + การแก้ไขที่แนะนำ ทำเครื่องหมาย 'เป็นไปได้' หากไม่แน่ใจ [diff]"

เวอร์ชันที่แข็งแกร่งระบุเจตนา กฎเกณฑ์ทางธุรกิจ และขอบเขตของ AI อย่างชัดเจน ดังนั้นการค้นพบที่เป็นประโยชน์จึงเกิดขึ้นและพื้นที่ที่แบบจำลองไม่รู้จักยังคงชัดเจน

ประเภทการค้นหา

ความน่าเชื่อถือของเอไอ

บทบาทของผู้ชาย

ไม่มีการตรวจสอบ Null/ข้อผิดพลาด

สูง

ตรวจสอบและนำไปใช้

ความสามารถในการอ่าน/สไตล์

สูง

เลือกตามความชอบ

กลิ่นความปลอดภัยที่เรียบง่าย

ปานกลาง

จบสแกนด้วยรถ

การปฏิบัติตามกฎเกณฑ์ทางธุรกิจ

ต่ำ

มันเป็นมนุษย์โดยสิ้นเชิง

เห็นพ้องต้องกัน/สถาปัตยกรรม

ต่ำ

จำเป็นต้องมีการตรวจสอบจากผู้เชี่ยวชาญ

การตรวจสอบ AI ไม่สามารถทดแทนการตรวจสอบโดยมนุษย์ได้

วางตำแหน่งการตรวจสอบ AI ให้เป็น "ตัวกรองแรก": การผ่านเบื้องต้นที่ราคาถูก รวดเร็ว และไม่เหน็ดเหนื่อย ตัวกรองนี้ช่วยลดความสนใจของผู้ตรวจสอบที่เป็นเจ้าหน้าที่จากรายละเอียดที่ไม่สำคัญ (ช่องว่าง ชื่อ) และนำไปยังสถานที่ที่ต้องใช้ความคิดจริงๆ เช่น กฎเกณฑ์ทางธุรกิจ สถาปัตยกรรม ผลลัพธ์ด้านความปลอดภัย แต่การอนุมัติการรวมเป็นลายเซ็นของผู้รับผิดชอบภายในทีม การตรวจสอบโดยอิสระโดยวิศวกรผู้มีความสามารถอย่างน้อยหนึ่งคนเป็นสิ่งจำเป็นสำหรับการเปลี่ยนแปลงที่มีความสำคัญด้านความปลอดภัย

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

ข้อผิดพลาดทั่วไป

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

โดยสรุป

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

งานสมัคร

เลือก PR/diff จริงหรือล่าสุด ขั้นแรก ให้ AI ตรวจสอบด้วยเทมเพลต "การทบทวนหมวดหมู่ตามวัตถุประสงค์" ใส่สิ่งที่ค้นพบลงในตารางแล้วตัดสินใจเลือกแต่ละรายการ: จริง (ฉันตรวจสอบแล้ว) ผลบวกลวง (นี่คือเหตุผลของฉัน) หรือจะดำเนินการ จากนั้นไปทัวร์ด้วยตัวเองแล้วลองค้นหาอย่างน้อยหนึ่งสิ่ง (โดยเฉพาะกฎเกณฑ์ทางธุรกิจหรือกรณีขอบ) ที่ AI ขาดหายไปและจดบันทึกไว้

รายการตรวจสอบ

  • [ ] ฉันใช้การตรวจสอบ AI เป็นตัวกรองแรก ไม่ใช่การรับรอง
  • [ ] ฉันเพิ่มวัตถุประสงค์และเกณฑ์การยอมรับลงในพรอมต์การตรวจทาน
  • [ ] ฉันแยกสิ่งที่ค้นพบออกจากเสียงตามหมวดหมู่และต้องการสิ่งเหล่านั้นอย่างยิ่ง
  • [ ] ฉันตั้งใจกรองผลการวิจัยแต่ละรายการเพื่อยืนยัน/ผลบวกลวง/นำไปใช้
  • [ ] ในฐานะมนุษย์ ฉันตรวจสอบกฎเกณฑ์ทางธุรกิจและการปฏิบัติตามสถาปัตยกรรม
  • [ ] ฉันต้องได้รับการอนุมัติจากวิศวกรที่มีคุณสมบัติเหมาะสมสำหรับการเปลี่ยนแปลงที่มีความสำคัญด้านความปลอดภัย