ในขณะที่ AI agents เขียนโค้ดในการพัฒนาซอฟต์แวร์มากขึ้นเรื่อยๆ ความท้าทายใหม่ก็เกิดขึ้น: การทำให้แน่ใจว่าผู้ตรวจสอบที่เป็นมนุษย์เข้าใจสิ่งที่พวกเขาอนุมัติจริงๆ PR Quiz GitHub Action เป็นความพยายามที่สร้างสรรค์เพื่อแก้ไขปัญหา LGTM (Looks Good To Me) ที่แพร่หลาย ซึ่งนักพัฒนาอนุมัติ pull requests โดยไม่เข้าใจการเปลี่ยนแปลงของโค้ดอย่างแท้จริง
ปัญหา LGTM ถึงจุดวิกฤต
ชุมชนนักพัฒนาซอฟต์แวร์กำลังต่อสู้กับปัญหาร้ายแรงที่การตรวจสอบโค้ดกลายเป็นการประทับตราอย่างผิวเผิน นักพัฒนามักอนุมัติ pull requests ที่พวกเขาไม่เข้าใจ ทำให้เกิดบั๊กที่เข้าสู่การใช้งานจริง ปัญหานี้รุนแรงมากจนบางบริษัทประสบกับสถานการณ์ที่ผู้เขียนโค้ดต้นฉบับลาออกไป และผู้ตรวจสอบที่อนุมัติการเปลี่ยนแปลงไม่สามารถอธิบายได้ว่าโค้ดนั้นทำอะไรจริงๆ
ปัญหานี้ขยายไปเกินกว่าโค้ดที่สร้างโดย AI แม้กับโค้ดที่เขียนโดยมนุษย์ การตรวจสอบที่มีประสิทธิภาพต้องการให้ผู้ตรวจสอบมีแบบจำลองทางความคิดของตนเองเกี่ยวกับวิธีการดำเนินงาน หรืออย่างน้อยก็สร้างขึ้นในขณะที่อ่าน หากไม่มีพื้นฐานนี้ การตรวจสอบโค้ดจะกลายเป็นเพียงการตรวจสอบการปฏิบัติตามกฎเกณฑ์มากกว่าการประเมินทางเทคนิคที่มีความหมาย
โซลูชันที่ขับเคลื่อนด้วย AI พร้อมความขัดแย้งในตัว
ระบบ PR Quiz ใช้ API ของ OpenAI เพื่อสร้างคำถามแบบเลือกตอบจากการเปลี่ยนแปลงใน pull request เมื่อผู้ตรวจสอบอนุมัติ pull request พวกเขาต้องผ่านควิซที่แสดงให้เห็นความเข้าใจของพวกเขาก่อนที่โค้ดจะสามารถรวมเข้าด้วยกันได้ ระบบมีพารามิเตอร์ที่กำหนดค่าได้เช่น ขีดจำกัดเวลา จำนวนครั้งสูงสุดในการพยายาม และเกณฑ์ขั้นต่ำของบรรทัดที่เปลี่ยนแปลงเพื่อป้องกันการใช้ในทางที่ผิดกับการเปลี่ยนแปลงเล็กน้อย
อย่างไรก็ตาม ชุมชนได้ระบุความขัดแย้งที่แท้จริงอย่างรวดเร็ว: นักพัฒนาสามารถใช้ AI เพื่อตอบคำถามควิซที่สร้างโดย AI ได้ สิ่งนี้สร้างปัญหาแบบวงกลมที่บอทอาจจบลงด้วยการทำควิซให้บอทตัวอื่น ซึ่งอาจทำลายจุดประสงค์ทั้งหมดของการกำกับดูแลโดยมนุษย์
พารามิเตอร์การกำหนดค่า PR Quiz
พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น | จำเป็น |
---|---|---|---|
github-token | โทเค็น GitHub สำหรับการเข้าถึง API | - | ใช่ |
ngrok-authtoken | โทเค็นการยืนยันตัวตน Ngrok สำหรับการโฮสต์เซิร์ฟเวอร์ | - | ใช่ |
openai-api-key | คีย์ API ของ OpenAI สำหรับการสร้างแบบทดสอบ | - | ใช่ |
model | โมเดล AI สำหรับการสร้างแบบทดสอบ | o4-mini | ไม่ |
lines-changed-threshold | จำนวนบรรทัดขั้นต่ำที่เปลี่ยนแปลงเพื่อเรียกใช้แบบทดสอบ | 100 | ไม่ |
time-limit-minutes | ระยะเวลาจำกัดในการทำแบบทดสอบให้เสร็จ | 10 | ไม่ |
max-attempts | จำนวนครั้งสูงสุดที่อนุญาตให้ทำแบบทดสอบ | 3 | ไม่ |
ข้อกังวลเรื่องความเป็นส่วนตัวและการดำเนินการ
ระบบนี้ทำให้เกิดคำถามเกี่ยวกับแนวปฏิบัติในการจัดการข้อมูลในยุค AI แม้ว่าเครื่องมือนี้จะอ้างถึงความเป็นส่วนตัวโดยส่งเฉพาะโค้ดไปยัง OpenAI แทนที่จะเป็นผู้ให้บริการโฮสติ้งบุคคลที่สาม นักพัฒนาหลายคนตั้งคำถามว่าเมื่อไหร่ที่การส่งโค้ดที่เป็นกรรมสิทธิ์ไปยังผู้ให้บริการโมเดล AI กลายเป็นมาตรฐานความเป็นส่วนตัวที่ยอมรับได้
การดำเนินการต้องการให้นักพัฒนาตั้งค่า API keys ของ OpenAI และ ngrok authentication tokens ซึ่งสร้างความซับซ้อนเพิ่มเติมในเวิร์กโฟลว์การพัฒนา ระบบรันเซิร์ฟเวอร์เว็บชั่วคราวภายใน GitHub Actions และใช้ ngrok เพื่อสร้างอุโมงค์สาธารณะ ซึ่งบางคนอาจมองว่าเป็นข้อพิจารณาด้านความปลอดภัย
ข้อกำหนดการติดตั้ง
- OpenAI API Key (แนะนำแพ็กเกจแบบเสียเงิน)
- ngrok authentication token (รองรับแพ็กเกจฟรี)
- GitHub repository ที่เปิดใช้งาน Actions
- การวางไฟล์ Workflow ในไดเรกทอรี
.github/workflows
- การกำหนดค่า repository secrets สำหรับ API keys
เกินกว่าโซลูชันทางเทคนิค
การอภิปรายเผยให้เห็นว่าปัญหาหลักอาจไม่ใช่ทางเทคนิคแต่เป็นเรื่องวัฒนธรรมและเศรษฐกิจ นักพัฒนาบางคนแนะนำว่าการตรวจสอบโค้ดที่มีความหมายเกิดขึ้นเฉพาะเมื่อคุณภาพซอฟต์แวร์ส่งผลกระทบต่อค่าตอบแทนโดยตรงผ่านโบนัส การประเมินผลการปฏิบัติงาน หรือความมั่นคงในงาน หากไม่มีผลกระทบที่แท้จริงจากคุณภาพโค้ดที่แย่ แนวปฏิบัติการตรวจสอบแบบผิวเผินจะยังคงอยู่ไม่ว่าจะมีเครื่องมือใดๆ
วิธีเดียวที่ฉันเคยเห็นวิศวกรใส่ใจเรื่อง PR คือถ้าซอฟต์แวร์หรือผลิตภัณฑ์เชื่อมโยงโดยตรงกับเงินเดือนของพวกเขา
การอภิปรายยังเน้นปรัชญาที่แตกต่างกันเกี่ยวกับจุดประสงค์ของการตรวจสอบโค้ด บางคนมองว่าเป็นการตรวจสอบตรรกะการดำเนินการ ในขณะที่คนอื่นๆ มองว่าเป็นการตรวจจับปัญหาความปลอดภัยที่อาจเกิดขึ้น การละเมิดแนวปฏิบัติที่ดี และกรณีขอบที่เครื่องมืออัตโนมัติอาจพลาดไป
มองไปข้างหน้า
แม้ว่า PR Quiz จะเป็นแนวทางที่สร้างสรรค์เพื่อให้แน่ใจว่ามีความเข้าใจในโค้ด แต่ก็แสดงให้เห็นถึงความท้าทายที่กว้างขึ้นที่การพัฒนาซอฟต์แวร์เผชิญในยุค AI เครื่องมือนี้อาจมีค่าที่สุดไม่ใช่ในฐานะผู้เฝ้าประตู แต่เป็นเครื่องมือช่วยการเรียนรู้ที่ช่วยให้ผู้ตรวจสอบระบุช่องว่างความรู้และตั้งคำถามที่ดีขึ้นในระหว่างกระบวนการตรวจสอบ
การตอบสนองของชุมชนแสดงให้เห็นว่าการแก้ไขปัญหาการตรวจสอบโค้ดต้องการการจัดการทั้งด้านเทคนิคและวัฒนธรรมของการพัฒนาซอฟต์แวร์ ในขณะที่ AI ยังคงสร้างโค้ดมากขึ้น อุตสาหกรรมต้องพัฒนาแนวปฏิบัติที่ยั่งยืนซึ่งรักษาคุณภาพโค้ดโดยไม่สร้างความสัมพันธ์ที่เป็นปฏิปักษ์ระหว่างมนุษย์และระบบ AI
อ้างอิง: PR Quiz