คืออะไร Trunk-Based Development
การพัฒนาในสาขาเดียว
Trunk-Based Development คือวิธีการพัฒนาที่นักพัฒนาทุกคนทำงานในสาขาหลักเดียว (trunk/main) โดยทำการ commit เล็กๆ บ่อยครั้ง
หลักการสำคัญ
- การเปลี่ยนแปลงทั้งหมดไปที่ main/trunk โดยตรง
- สาขา feature อายุสั้น (สูงสุด 1-2 วัน)
- commit บ่อย (หลายครั้งต่อวัน)
- การรวมอย่างต่อเนื่องเป็นสิ่งจำเป็น
ข้อดี
- ลด merge conflict
- ข้อเสนอแนะรวดเร็ว
- ประวัติ commit ที่เรียบง่าย
- เร่งกระบวนการ CI/CD
- ลดความเสี่ยงในการรวม
แนวทางปฏิบัติเพื่อความสำเร็จ
- Feature Flags — ซ่อนฟีเจอร์ที่ยังไม่สมบูรณ์
- Trunk-based + สาขาอายุสั้น — สาขา 1-2 วัน
- Code Review ต่อเนื่อง — รีวิวโค้ดอย่างสม่ำเสมอ
- การทดสอบอัตโนมัติ — ทดสอบอัตโนมัติทุก commit
เปรียบเทียบกับ Git Flow
| ด้าน | Trunk-Based | Git Flow | |------|-------------|----------| | สาขา | 1 หลัก | หลายสาขาอายุยาว | | รีลีส | ต่อเนื่อง | ตามกำหนด | | ความซับซ้อน | ต่ำ | สูง | | ความขัดแย้ง | หายาก | บ่อย |
เมื่อไหร่ควรใช้
- ทีมที่มีประสบการณ์พร้อมการครอบคลุมการทดสอบที่ดี
- โปรเจกต์ที่มี CI/CD
- เมื่อต้องการรีลีสบ่อย