← กลับไปหน้าบทความDevOps
WAIHAUS / ARTICLE

Git​ ​Branching​ ​คือ​อะไร​:​ ​Feature​ ​Branch​,​ ​Pull​ ​Request​ ​และ​ ​Code​ ​Review

ทำงานแยก Branch เสนอการเปลี่ยนผ่าน Pull Request และให้ทีมตรวจพฤติกรรมกับความเสี่ยงก่อนรวมโค้ด

Git WorkflowPull RequestCode Review
ภาพ Feature Branch แยกงานแล้วผ่าน Review ก่อน Merge
ภาพ Feature Branch แยกงานแล้วผ่าน Review ก่อน Merge

Git Branch เป็นเส้นพัฒนาที่แยกจากงานหลักชั่วคราว Feature Branch ใช้ทำงานหนึ่งชุดโดยไม่รบกวนโค้ดที่กำลังใช้งาน Pull Request (PR) เป็นพื้นที่เสนอความเปลี่ยนแปลงให้ทีมดู Diff, Test และเหตุผลก่อน Merge ส่วน Code Review คือการตรวจคุณภาพและแลกบริบท ไม่ใช่การจับผิดรูปแบบตัวอักษรอย่างเดียว

เส้นทางงานทั่วไป

เริ่ม Branch จากฐานที่ตกลง ทำการเปลี่ยนที่มีขอบเขตชัด รัน Test เปิด PR พร้อมปัญหาที่แก้ วิธีตรวจ และความเสี่ยง Reviewer ดูพฤติกรรม สิทธิ์ ข้อมูลผิด และผลกระทบต่อ Caller อื่น แล้วผู้พัฒนาปรับตามเหตุผล ก่อน Merge เมื่อเกณฑ์ผ่าน ทั้งหมดนี้ควรปรับตามขนาดทีม ไม่สร้างขั้นตอนอนุมัติที่ไม่มีประโยชน์

Feature Branch ผ่าน Test และ Review ก่อน Merge

ภาพที่ 1: PR ทำให้หลักฐานของการเปลี่ยนอยู่ในที่เดียวก่อนนำโค้ดรวมกับงานหลัก

ตัวอย่างสมมติ: เพิ่มช่องค้นหา

PR หนึ่งเพิ่มช่องค้นหาในหน้ารายการและ Endpoint ที่รับตัวกรอง คำอธิบายควรบอกพฤติกรรมที่เปลี่ยน ผลเมื่อไม่พบข้อมูล วิธีทดสอบ และภาพหน้าจอถ้าช่วย Review Reviewer ควรตรวจว่าตัวกรองยังเคารพสิทธิ์ของผู้ใช้ ไม่ใช่ดูเฉพาะว่าหน้าจอสวยหรือไม่

วิธีทำให้ Review มีคุณภาพ

แบ่ง PR ให้ตรวจได้ในเวลาที่เหมาะ ใช้คำอธิบายแทนการบังคับให้ Reviewer เดา วาง Test อัตโนมัติสำหรับความผิดพลาดที่เกิดซ้ำ และให้คนอนุมัติที่เข้าใจส่วนเสี่ยง หากผู้เขียนเป็นคน Merge เองก่อน Test ผ่าน ระบบ Review จะกลายเป็นขั้นตอนพิธีการ

สำหรับรายงาน

แสดง Branch, Commit, PR, ผล Test และข้อเสนอจาก Review ของตัวอย่างหนึ่ง ระบุว่า Review ตรวจอะไรได้และอะไรยังต้องทดสอบหลัง Merge แยกการ Merge สำเร็จออกจากการ Deploy และผลจริงใน Production

อ่าน CI/CD และ Regression Testing หรือดู บริการ Web Application

วิเคราะห์กรณีศึกษาเพื่อนำไปเขียนรายงาน

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

หลักฐานที่ควรแสดงคือ ลำดับ feature branch, commit, Pull Request, review และ merge ควรอธิบายสัญลักษณ์ คำย่อ หรือเงื่อนไขในหลักฐานนั้นให้ผู้อ่านที่ไม่อยู่ในทีมเข้าใจ และบอกว่ามันเชื่อมกับ Requirement ข้อใด ถ้ามีหลายทางเลือก ให้ระบุเหตุผลที่เลือกทางหนึ่งและผลกระทบต่อผู้ใช้ ทีมพัฒนา หรือผู้ดูแลระบบ แทนการเขียนเพียงว่าใช้แนวทางที่ “ดีที่สุด” โดยไม่มีเกณฑ์เปรียบเทียบ

เกณฑ์ประเมินตัวอย่างคือ ผู้ตรวจเห็นเหตุผลการเปลี่ยนและ test ก่อนรวมโค้ด ส่วนข้อจำกัดที่ต้องระบุคือ branch ยาวเกินไปเพิ่ม conflict และทำให้ feedback ช้า หากยังไม่ได้ทดลองกับผู้ใช้หรือข้อมูลจริง ให้เขียนว่าเป็นข้อเสนอเชิงออกแบบ ไม่สรุปเป็นผลที่พิสูจน์แล้ว การมีทั้งเกณฑ์และข้อจำกัดช่วยให้รายงานตรวจสอบเหตุผลได้ และเปิดทางให้ผู้อื่นนำกรณีเดียวกันไปทดสอบซ้ำในบริบทของตน

แหล่งข้อมูลประกอบ