Trunk Based Development

Git ขั้นสูง

Amanda Crawford-Adamo

Software and Data Engineer

Trunk Based Development คืออะไร?

  • โมเดล CI/CD สำหรับการแตกสาขาใน source control
  • นักพัฒนาไม่ต้อง push ไปยัง release branch แยกต่างหากอีกต่อไป
  • การเปลี่ยนแปลงมาจาก branch อายุสั้นที่ push เข้า main
  • อัปเดตบ่อยและทีละน้อย

กราฟแสดง commit ไปยัง main branch และ branch ในฐานะ release trunk

Git ขั้นสูง

หลักการสำคัญของ Trunk Based Development

  1. Commit เข้า main บ่อยครั้ง
  2. Feature branch อายุสั้น (< 1 วัน)
  3. Continuous integration
  4. Feature flag สำหรับงานที่ยังไม่เสร็จ

ภาพแสดงขั้นตอน trunk based workflow โดย branch อายุสั้นมี feature flag toggle เมื่อ commit เข้า main

Git ขั้นสูง

Feature Flagging ใน TBD

  • จัดการฟีเจอร์ที่ยังไม่เสร็จ
  • ป้องกันไม่ให้ผู้ใช้ได้รับผลกระทบ
  • ค่อยๆ เปิดตัวฟีเจอร์ทีละขั้น

ตัวอย่างโค้ด Feature Flag

  if feature_flag_enabled('new_feature'):
      # New feature code
  else:
      # Old feature code
Git ขั้นสูง

Continuous Integration ใน TBD

  • การ commit เข้า main จะทริกเกอร์การ build และ ทดสอบอัตโนมัติ
  • ลดภาระการดูแลและเร่งความเร็วในการ release
  • ผลิตภัณฑ์มีความเสถียรและเชื่อถือได้ตลอดเวลา
  • รับประกันโค้ดที่ปลอดภัยและสอดคล้องกับมาตรฐานอุตสาหกรรม
  • รักษาคุณภาพโค้ดและลดความเสี่ยงจากบั๊ก
Git ขั้นสูง

ข้อดีและความท้าทายของ TBD

ข้อดี:

  • ลด merge conflict
  • วงจร release เร็วขึ้น
  • คุณภาพโค้ดดีขึ้น
  • การทำงานร่วมกันดีขึ้น

ความท้าทาย:

  • ต้องการวินัยจากทีม
  • ต้องมีการทดสอบที่แข็งแกร่ง
  • มีช่วงการเรียนรู้เริ่มต้น
  • การจัดการฟีเจอร์ที่ยังไม่เสร็จ
Git ขั้นสูง

แนวปฏิบัติที่ดีที่สุด

  1. Commit การเปลี่ยนแปลงเล็กน้อยบ่อยครั้ง
  2. ทำให้การทดสอบและ deployment เป็นอัตโนมัติ
  3. ใช้ feature flag สำหรับงานที่ยังไม่เสร็จ
  4. ทำ code review อย่างสม่ำเสมอ
  5. ติดตามผลหลัง deployment
Git ขั้นสูง

มาฝึกกันเถอะ!

Git ขั้นสูง

Preparing Video For Download...