มาตรฐาน Code Review
ใครต้อง Review
หัวข้อที่มีชื่อว่า “ใครต้อง Review”| PR ของ | ต้องให้ใคร Review |
|---|---|
| INTERN (ทุก PR) | DEV (ทุกครั้ง) |
| INTERN แก้บัค Medium | DEV (ทุกครั้ง) |
| INTERN แก้บัค Low | ไม่จำเป็น (แต่แนะนำ) |
| DEV | DEV คนอื่น หรือ self-review |
Checklist สำหรับ Reviewer
หัวข้อที่มีชื่อว่า “Checklist สำหรับ Reviewer”1. Functionality
หัวข้อที่มีชื่อว่า “1. Functionality”- Code ทำงานตรงตาม plan.md / requirements
- ไม่มี logic errors
- Edge cases ถูก handle
2. Test Coverage
หัวข้อที่มีชื่อว่า “2. Test Coverage”- มี unit test
- อัพเดทไฟล์ test case กลางแล้ว
- Unit test ผ่านทั้งหมด
- ครอบคลุม happy path, edge cases, error cases
3. Code Quality
หัวข้อที่มีชื่อว่า “3. Code Quality”- ชื่อตัวแปร/function สื่อความหมาย
- ไม่มี code ซ้ำซ้อน (DRY)
- ขนาด function เหมาะสม (ไม่ยาวเกินไป)
- มี comments เฉพาะที่จำเป็น
4. Security
หัวข้อที่มีชื่อว่า “4. Security”- ไม่มี hardcoded secrets/passwords
- Input validation ทุกจุดที่รับข้อมูลจากผู้ใช้
- ไม่มีช่องโหว่ SQL injection, XSS
- ใช้ parameterized queries
5. Performance
หัวข้อที่มีชื่อว่า “5. Performance”- ไม่มี N+1 queries
- ไม่มี memory leaks
- ไม่มี unnecessary re-renders (React)
วิธีให้ Feedback
หัวข้อที่มีชื่อว่า “วิธีให้ Feedback”- อธิบายเหตุผลว่า ทำไม ต้องแก้ (ไม่ใช่แค่บอกว่าผิด)
- แนะนำวิธีแก้ พร้อมตัวอย่าง code
- ชมสิ่งที่ทำได้ดี
ไม่ควรทำ
หัวข้อที่มีชื่อว่า “ไม่ควรทำ”- วิจารณ์ตัวคน ให้วิจารณ์ code
- ละเลยปัญหา เพราะไม่อยากขัดแย้ง
- block PR เพราะ style preference ที่ไม่สำคัญ
ตัวอย่าง Comment
หัวข้อที่มีชื่อว่า “ตัวอย่าง Comment”// ดี ✅"ตรงนี้ควรเพิ่ม try-catch เพราะ API call อาจ fail ได้ถ้า fail แล้วไม่ catch จะทำให้ app crash ตัวอย่าง:try { await fetchData(); } catch (e) { setError(e.message); }"
// ไม่ดี ❌"code ผิด แก้ด้วย"