เมื่อการรีวิวโค้ดแบบเดิมไม่ตอบโจทย์ – และความพยายามสร้างเครื่องมือใหม่ก็ยังไม่ง่าย

หลายคนที่เขียนโค้ดคงคุ้นเคยกับการรีวิวโค้ดผ่าน GitHub ซึ่งแม้จะสะดวก แต่ก็มีข้อจำกัดมากมาย โดยเฉพาะเรื่อง “stacked pull requests” และ “interdiff reviews” ที่ GitHub ยังรองรับได้ไม่ดีนัก

Matklad จาก TigerBeetle จึงทดลองสร้างเครื่องมือใหม่ชื่อว่า git-review โดยมีแนวคิดว่า “การรีวิวโค้ดควรเป็น commit หนึ่งที่อยู่บน branch ของ PR” ซึ่ง reviewer และ author สามารถแก้ไขร่วมกันได้ โดยใช้ inline comment ในโค้ดจริงแทนการพิมพ์ใน browser

แนวคิดนี้ช่วยให้การรีวิวโค้ดมีบริบทมากขึ้น เช่น reviewer สามารถรันเทสต์, ลอง refactor, หรือใช้ code completion ได้ทันทีใน editor ของตัวเอง แต่ปัญหาก็เกิดขึ้นเมื่อมีการแก้ไขโค้ดระหว่างรีวิว เพราะ comment ที่อยู่ใน commit อาจขัดแย้งกับโค้ดใหม่ ทำให้เกิด conflict และต้องใช้ git push --force-with-lease ซึ่งเพิ่มความยุ่งยาก

สุดท้าย แม้แนวคิดจะดี แต่ git-review ก็ถูก “พักไว้ก่อน” เพราะความซับซ้อนเกินกว่าที่จะควบคุมได้ใน 500 บรรทัดของโค้ดต้นแบบ

อย่างไรก็ตาม Matklad เชื่อว่าอนาคตของ code review อาจเปลี่ยนไป หาก Git รองรับ “Change-Id” แบบ Gerrit ซึ่งจะช่วยให้ track การเปลี่ยนแปลงของ commit ได้ดีขึ้น และอาจเปิดทางให้รีวิวแบบ interdiff กลายเป็นมาตรฐานใหม่

สรุปเนื้อหาเป็นหัวข้อ
GitHub มีข้อจำกัดในการรองรับ stacked pull requests และ interdiff reviews
git-review ถูกสร้างขึ้นเพื่อทดลองแนวคิดใหม่ในการรีวิวโค้ด
แนวคิดคือการใช้ commit เดียวบน PR branch เพื่อเก็บ comment รีวิว
Reviewer สามารถใช้ editor ของตัวเองในการรันเทสต์และ refactor ได้ทันที
การรีวิวแบบนี้ช่วยให้มีบริบทมากกว่าการดู diff ผ่าน browser
ปัญหาเกิดเมื่อมีการแก้ไขโค้ดระหว่างรีวิว ทำให้ comment เกิด conflict
ต้องใช้ git push --force-with-lease ซึ่งเพิ่มความยุ่งยาก
git-review ถูกพักไว้เพราะความซับซ้อนเกินกว่าที่ควบคุมได้
Matklad หวังว่า Git จะรองรับ Change-Id เพื่อช่วยให้ interdiff review เป็นไปได้
เขาเชื่อว่าการรีวิวโค้ดควรอยู่ใน repository ไม่ใช่ในระบบ web-based

ข้อมูลเสริมจากภายนอก
Gerrit และ Fossil เป็นระบบที่เก็บสถานะรีวิวไว้ใน repository
เครื่องมืออย่าง git-appraise, git-bug, และ prr พยายามแก้ปัญหานี้ด้วยวิธีต่าง ๆ
Jane Street ใช้ระบบรีวิวภายในที่ไม่พึ่งพา web interface และมีประสิทธิภาพสูง
ในปี 2025 เครื่องมือรีวิวโค้ดที่ได้รับความนิยมยังคงเป็น GitHub Pull Requests, Gerrit, และ Phabricator
DevOps และ Agile ทำให้ความต้องการรีวิวโค้ดแบบ real-time และ contextual เพิ่มขึ้น

https://tigerbeetle.com/blog/2025-08-04-code-review-can-be-better/
🎙️ เมื่อการรีวิวโค้ดแบบเดิมไม่ตอบโจทย์ – และความพยายามสร้างเครื่องมือใหม่ก็ยังไม่ง่าย หลายคนที่เขียนโค้ดคงคุ้นเคยกับการรีวิวโค้ดผ่าน GitHub ซึ่งแม้จะสะดวก แต่ก็มีข้อจำกัดมากมาย โดยเฉพาะเรื่อง “stacked pull requests” และ “interdiff reviews” ที่ GitHub ยังรองรับได้ไม่ดีนัก Matklad จาก TigerBeetle จึงทดลองสร้างเครื่องมือใหม่ชื่อว่า git-review โดยมีแนวคิดว่า “การรีวิวโค้ดควรเป็น commit หนึ่งที่อยู่บน branch ของ PR” ซึ่ง reviewer และ author สามารถแก้ไขร่วมกันได้ โดยใช้ inline comment ในโค้ดจริงแทนการพิมพ์ใน browser แนวคิดนี้ช่วยให้การรีวิวโค้ดมีบริบทมากขึ้น เช่น reviewer สามารถรันเทสต์, ลอง refactor, หรือใช้ code completion ได้ทันทีใน editor ของตัวเอง แต่ปัญหาก็เกิดขึ้นเมื่อมีการแก้ไขโค้ดระหว่างรีวิว เพราะ comment ที่อยู่ใน commit อาจขัดแย้งกับโค้ดใหม่ ทำให้เกิด conflict และต้องใช้ git push --force-with-lease ซึ่งเพิ่มความยุ่งยาก สุดท้าย แม้แนวคิดจะดี แต่ git-review ก็ถูก “พักไว้ก่อน” เพราะความซับซ้อนเกินกว่าที่จะควบคุมได้ใน 500 บรรทัดของโค้ดต้นแบบ อย่างไรก็ตาม Matklad เชื่อว่าอนาคตของ code review อาจเปลี่ยนไป หาก Git รองรับ “Change-Id” แบบ Gerrit ซึ่งจะช่วยให้ track การเปลี่ยนแปลงของ commit ได้ดีขึ้น และอาจเปิดทางให้รีวิวแบบ interdiff กลายเป็นมาตรฐานใหม่ 📌 สรุปเนื้อหาเป็นหัวข้อ ➡️ GitHub มีข้อจำกัดในการรองรับ stacked pull requests และ interdiff reviews ➡️ git-review ถูกสร้างขึ้นเพื่อทดลองแนวคิดใหม่ในการรีวิวโค้ด ➡️ แนวคิดคือการใช้ commit เดียวบน PR branch เพื่อเก็บ comment รีวิว ➡️ Reviewer สามารถใช้ editor ของตัวเองในการรันเทสต์และ refactor ได้ทันที ➡️ การรีวิวแบบนี้ช่วยให้มีบริบทมากกว่าการดู diff ผ่าน browser ➡️ ปัญหาเกิดเมื่อมีการแก้ไขโค้ดระหว่างรีวิว ทำให้ comment เกิด conflict ➡️ ต้องใช้ git push --force-with-lease ซึ่งเพิ่มความยุ่งยาก ➡️ git-review ถูกพักไว้เพราะความซับซ้อนเกินกว่าที่ควบคุมได้ ➡️ Matklad หวังว่า Git จะรองรับ Change-Id เพื่อช่วยให้ interdiff review เป็นไปได้ ➡️ เขาเชื่อว่าการรีวิวโค้ดควรอยู่ใน repository ไม่ใช่ในระบบ web-based ✅ ข้อมูลเสริมจากภายนอก ➡️ Gerrit และ Fossil เป็นระบบที่เก็บสถานะรีวิวไว้ใน repository ➡️ เครื่องมืออย่าง git-appraise, git-bug, และ prr พยายามแก้ปัญหานี้ด้วยวิธีต่าง ๆ ➡️ Jane Street ใช้ระบบรีวิวภายในที่ไม่พึ่งพา web interface และมีประสิทธิภาพสูง ➡️ ในปี 2025 เครื่องมือรีวิวโค้ดที่ได้รับความนิยมยังคงเป็น GitHub Pull Requests, Gerrit, และ Phabricator ➡️ DevOps และ Agile ทำให้ความต้องการรีวิวโค้ดแบบ real-time และ contextual เพิ่มขึ้น https://tigerbeetle.com/blog/2025-08-04-code-review-can-be-better/
TIGERBEETLE.COM
Code Review Can Be Better
Insights, updates, and technical deep dives on building a high-performance financial transactions database.
0 ความคิดเห็น 0 การแบ่งปัน 50 มุมมอง 0 รีวิว