🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

วิธีใช้ฟังก์ชันคอมเมนต์และรีวิวบน GitHub (คู่มือ Code Review สำหรับผู้เริ่มต้น)

ในบทความที่แล้ว เราได้เรียนรู้การใช้ `Fork` และ `Pull Request` เพื่อก้าวแรกในการมีส่วนร่วมในโปรเจกต์ของผู้อื่น แต่การส่ง Pull Request เป็นเพียงจุดเริ่มต้นเท่านั้น การพัฒนาที่แท้จริงยังไม่เสร็จสิ้น จากนี้ไปคือจุดเริ่มต้นของโค้ดรีวิว (Code Review) ซึ่งเป็นหัวใจสำคัญของการพัฒนาแบบทีม

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


พื้นฐานของโค้ดรีวิว: การสื่อสารบน Pull Request

ศูนย์กลางของการทำโค้ดรีวิวคือหน้า Pull Request ที่คุณสร้างขึ้น หน้านี้จะรวบรวมข้อมูลทั้งหมดที่เกี่ยวกับการเปลี่ยนแปลงของคุณ และการสื่อสารที่นี่จะส่งผลต่อคุณภาพของโปรเจกต์โดยตรง

ฟังก์ชันรีวิวของ GitHub แบ่งออกเป็น 2 ประเภทใหญ่ ๆ คือ

การใช้ทั้งสองอย่างนี้อย่างเหมาะสมจะช่วยให้การสื่อสารเป็นไปอย่างราบรื่น


วิธีใช้ฟังก์ชันคอมเมนต์อย่างละเอียด

เรามาเริ่มจากฟังก์ชันคอมเมนต์ที่ใช้งานง่ายกันก่อน

1. คอมเมนต์สำหรับ Pull Request ทั้งหมด

หากคุณมีคำถามทั่วไปเกี่ยวกับการเปลี่ยนแปลงทั้งหมด หรือต้องการกล่าวขอบคุณ คุณสามารถใช้ช่องคอมเมนต์ที่ด้านล่างของหน้า Pull Request ได้ ซึ่งจะอยู่ในแท็บ "Conversation" ด้านล่างสุด

[ภาพ: ภาพหน้าจอของช่องป้อนความคิดเห็นที่ด้านล่างของหน้า Pull Request]

เพียงแค่ป้อนข้อความลงในกล่องข้อความแล้วกดปุ่ม "Comment" ก็สามารถโพสต์ได้ คุณยังสามารถใช้ `@ชื่อผู้ใช้` เพื่อส่งการแจ้งเตือน (mention) ไปยังบุคคลที่ต้องการได้อีกด้วย

2. คอมเมนต์สำหรับบรรทัดโค้ดที่เฉพาะเจาะจง

ฟังก์ชันที่ใช้บ่อยที่สุดในการทำโค้ดรีวิวคือการคอมเมนต์รายบรรทัด เหมาะอย่างยิ่งสำหรับการชี้แจงประเด็นที่เฉพาะเจาะจง เช่น "ชื่อตัวแปรตรงนี้น่าจะตั้งให้เข้าใจง่ายกว่านี้ไหม?"

  1. ในหน้า Pull Request ให้คลิกที่แท็บ "Files changed"
  2. รายการไฟล์ที่มีการเปลี่ยนแปลงจะปรากฏขึ้น ให้เลื่อนเมาส์ไปที่ด้านซ้ายของบรรทัดโค้ดที่ต้องการคอมเมนต์
  3. ไอคอน "+" สีฟ้าจะปรากฏขึ้น ให้คลิกที่ไอคอนนั้น
  4. กล่องข้อความจะปรากฏขึ้น ให้ป้อนความคิดเห็นของคุณแล้วกดปุ่ม "Start a review"

[ภาพ: การเพิ่มคอมเมนต์ในบรรทัดที่ต้องการในแท็บ "Files changed"]

ณ จุดนี้ คอมเมนต์ของคุณจะยังอยู่ในสถานะ "รอการตรวจสอบ (Pending)" เป็นเรื่องปกติที่จะรวบรวมข้อเสนอแนะหลาย ๆ ข้อก่อน แล้วจึงส่งเป็นรีวิวในครั้งสุดท้าย

3. ฟังก์ชันเสนอแนะการเปลี่ยนแปลง (Suggestion)

หากคุณต้องการเสนอโค้ดที่แก้ไขแล้วอย่างเป็นรูปธรรมว่า "เขียนแบบนี้น่าจะดีกว่า" ให้คลิกที่ไอคอน "Insert a suggestion" (เครื่องหมาย `+/-`) ที่อยู่เหนือช่องคอมเมนต์ จากนั้นโค้ดบล็อกจะถูกแทรกเข้ามา ทำให้คุณสามารถเขียนโค้ดแก้ไขของคุณได้โดยตรง

[ภาพ: การใช้ฟังก์ชัน "Insert a suggestion" เพื่อเสนอโค้ดแก้ไขในช่องคอมเมนต์]

การใช้ฟังก์ชันนี้จะสะดวกมาก เพราะผู้สร้าง Pull Request สามารถนำข้อเสนอแนะของคุณไปใช้กับโค้ดได้ด้วยการคลิกเพียงปุ่มเดียว


การส่งรีวิว: อนุมัติ หรือ ร้องขอการเปลี่ยนแปลง

หลังจากเขียนคอมเมนต์หลาย ๆ ข้อแล้ว สุดท้ายให้นำคอมเมนต์เหล่านั้นมารวมกันแล้วส่งเป็น "รีวิว" หนึ่งฉบับ ให้คลิกที่ปุ่ม "Review changes" ที่แสดงอยู่มุมบนขวาของหน้าจอ

[ภาพ: การชี้ไปที่ปุ่ม "Review changes"]

จากนั้นจะมี 3 ตัวเลือกปรากฏขึ้นมา

[ภาพ: หน้าต่าง modal ที่แสดง 3 ตัวเลือกในการส่งรีวิว (Comment, Approve, Request changes)]

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


การตอบกลับรีวิว: แก้ไขตามคำแนะนำแล้ว Push อีกครั้ง

ในทางกลับกัน เรามาดูวิธีตอบกลับเมื่อคุณเป็นผู้สร้าง Pull Request และได้รับรีวิวจากผู้อื่นกันบ้าง

ขั้นตอนที่ 1: ตรวจสอบเนื้อหาคอมเมนต์และพูดคุย
สำหรับเนื้อหาที่ถูกชี้แนะ ก่อนอื่นควรกล่าวขอบคุณ หากมีจุดไหนที่ไม่เข้าใจ ให้ตอบกลับเพื่อสอบถาม การสื่อสารทั้งหมดจะถูกบันทึกไว้บน Pull Request

ขั้นตอนที่ 2: แก้ไขโค้ดตามคำแนะนำ
หากคุณเห็นด้วยกับคำแนะนำจากผู้รีวิว ให้แก้ไขโค้ดบน PC ของคุณ การสร้าง branch ใหม่เช่น `fix-review-comments` เพื่อทำงานจะยิ่งดูเป็นมืออาชีพมากขึ้น

ขั้นตอนที่ 3: Push คอมมิตเพิ่มเติม
เมื่อแก้ไขเสร็จแล้ว ให้สร้างคอมมิตใหม่แล้ว push ไปยัง branch ที่เป็นต้นทางของ Pull Request (เช่น `fix-typo-in-readme`)

git commit -m "Reflect review comments"

git push origin fix-typo-in-readme

เมื่อคุณ push คอมมิตใหม่ การเปลี่ยนแปลงนั้นจะถูกสะท้อนไปยัง Pull Request โดยอัตโนมัติ ไม่จำเป็นต้องสร้าง Pull Request ใหม่

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

[ภาพ: ปุ่ม "Resolve conversation" ถูกกด และการสนทนาถูกพับเก็บ]

เมื่อทุกการสนทนาถูกแก้ไขและได้รับการ "Approve" จากผู้รีวิวอีกครั้ง ก็ถึงเวลาที่จะทำการ merge แล้ว