𝗧𝗶𝗲𝗿𝗲𝗱 𝗔𝗜 𝗖𝗼𝗱𝗲 𝗥𝗲𝘃𝗶𝗲𝘄: 𝗔 𝗙𝗿𝗮𝗺𝗲𝘄𝗼𝗿𝗸 𝗳𝗼𝗿 𝗔𝗜-𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗲𝗱 𝗣𝗥𝘀

เครื่องมือ AI เปลี่ยนแปลงวิธีการที่โค้ดเข้ามาในคิวการรีวิวของคุณ Diff มีขนาดใหญ่ขึ้นและมาเร็วขึ้น ซึ่งมักจะมาจาก AI มากกว่าความคิดของมนุษย์

นี่ไม่ใช่ปัญหา เว้นแต่ว่ากระบวนการรีวิวของคุณจะยังคงเหมือนเดิม

งานวิจัยแสดงให้เห็นว่าเครื่องมือเขียนโค้ดด้วย AI สามารถเพิ่มอัตราการเปลี่ยนแปลงโค้ด (code churn) และลดการนำโค้ดกลับมาใช้ใหม่ (reuse) การศึกษาหนึ่งพบว่าโค้ดที่สร้างโดย AI มักมีช่องโหว่ด้านความปลอดภัยมากกว่าโค้ดที่เขียนโดยมนุษย์

เครื่องมือ AI ช่วยให้ทีมส่งมอบงานได้เร็วขึ้น แต่การปฏิบัติกับ Pull Request (PR) ที่สร้างโดย AI เหมือนกับที่สร้างโดยมนุษย์ จะทำให้เกิดคอขวดหรือข้อบกพร่องที่ซ่อนอยู่

คุณจำเป็นต้องใช้แนวทางแบบแบ่งระดับ (tiered approach) โดยปรับความพยายามในการรีวิวให้เหมาะสมกับความเสี่ยงของการเปลี่ยนแปลงนั้นๆ

ใช้สัญญาณ 3 อย่างนี้เพื่อตัดสินระดับการรีวิว:

• แหล่งที่มาของโค้ด (Code Origin): มนุษย์ใช้คำแนะนำเล็กน้อยจาก AI หรือ AI เป็นคนร่างฟีเจอร์ทั้งหมดขึ้นมา? โค้ดจาก AI มักจะดูเหมือนถูกต้อง แต่ขาดตรรกะที่ลึกซึ้ง • ขอบเขตการเปลี่ยนแปลง (Change Scope): มีการเปลี่ยนแปลงกี่บรรทัด? Diff ขนาดใหญ่จะมีพื้นที่เสี่ยงต่อการเกิดข้อผิดพลาดมากขึ้น • ผลกระทบวงกว้าง (Blast Radius): โค้ดนี้ไปแตะส่วนไหนบ้าง? การเปลี่ยนแปลงในส่วนการยืนยันตัวตน (authentication) หรือการชำระเงิน (payments) มีความเสี่ยงสูง ส่วนการเปลี่ยนแปลงในเอกสาร (documentation) มีความเสี่ยงต่ำ

กำหนดระดับตามสัญญาณเหล่านี้:

• Tier 1 (Skim): ใช้สำหรับโค้ดที่เขียนโดยมนุษย์เท่านั้น หรือสคริปต์ขนาดเล็กที่มี AI ช่วยเหลือ ผู้รีวิวหนึ่งคนจะตรวจสอบเรื่อง hardcoded keys ระยะเวลาดำเนินการ: 4 ชั่วโมง • Tier 2 (Scrutinize): ใช้สำหรับการเปลี่ยนแปลงโดย AI ระดับปานกลาง หรือ Diff ขนาดใหญ่ที่เขียนโดยมนุษย์ ผู้รีวิวหนึ่งคนจะตรวจสอบตรรกะ (logic) และความครอบคลุมของการทดสอบ (test coverage) ระยะเวลาดำเนินการ: 24 ชั่วโมง • Tier 3 (Sign-off): ใช้สำหรับโค้ดที่สำคัญหรือ Diff ขนาดใหญ่ที่สร้างโดย AI ต้องมีผู้รีวิวสองคน รวมถึง Tech Lead เพื่อลงนามอนุมัติ จำเป็นต้องมีการสแกนความปลอดภัยและมีแผนการย้อนกลับ (rollback plans) ระยะเวลาดำเนินการ: 48 ชั่วโมง

Blast radius คือเกณฑ์ตัดสินสูงสุด (override) การเปลี่ยนแปลงเล็กน้อยโดย AI ในตรรกะการชำระเงินของคุณจะถือเป็น Tier 3 เสมอ

คุณสามารถทำให้เป็นอัตโนมัติได้ โดยใช้ GitHub Actions workflow เพื่ออ่านขนาดของ diff และเส้นทางไฟล์ (file paths) จากนั้นกำหนด label เช่น review/tier-1 หรือ review/tier-3 โดยอัตโนมัติ

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

สร้างเมทริกซ์ (matrix) เพิ่ม label และใช้ข้อมูลเพื่อปรับเกณฑ์ (thresholds) ของคุณเมื่อเวลาผ่านไป

ที่มา: https://dev.to/vuong_ngo/tiered-ai-code-review-a-framework-for-ai-generated-prs-4fgb

ชุมชนแห่งการเรียนรู้เพิ่มเติม (ไม่บังคับ): https://t.me/GyaanSetuAi