Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Git :: เลือก Branch Strategy อะไรดี ?

$
0
0

ปัญหาหลักที่มักเจอเกี่ยวกับการจัดการ source code ด้วย VCS (Version Control System) เช่น Git คือ เราจะเลือก branch strategy แบบไหนดี ? ยกตัวอย่างเช่น
  • TBD (Trunk-Based Development)
  • Integration branch (Master และ Develop)
  • Feature branch/ Git flow
  • Pull Request

จากสิ่งที่พบเจอมานั้น มีสิ่งที่น่าสนใจคือ

TBD ไม่เหมาะกันงานของเรา Integration branch ดีเลยนะ แต่งานของเราขึ้นไม่พร้อมกัน Feature branch/ Git flow มันใช่เลย แต่ ไป ๆ มา ๆ จำนวน branch เยอะมาก แต่ ไป ๆ มา ๆ แต่ละ branch มีอายุที่ยามนานมาก ๆ กว่าจะ merge ไปยัง branch หลัก Pull request ก็มีปัญหาเยอะ ในการ review อีกทั้ง code แย่และไม่ถูกต้อง ประเด็นคือ ทำไมแต่ละแนวทางมีแต่ปัญหานะ ? ทั้งที่เราทำงานเป็นรอบสั้น ๆ นะ ทั้งที่เราทำงานแบบ feature-based นะ

แต่เมื่อเราลงไปดูในรายละเอียด

ของแต่ละ branch แต่ละ feature พบสิ่งที่สะเทือนใจมาก ๆ คือ จำนวน commit เยอะมาก ๆ บางทีมบอกว่า แต่ละ commit มันคือแต่ละ task เลยนะ จำนวน commit มันบอกให้เรารู้ว่า มี task ที่ต้องทำเยอะมากมาย เมื่องานเยอะเกินไป ปัญหาจึงตามมา นั่นคือ ทำการ merge code กับ branch หลักก็ยาก conflict เพียบ ทดสอบก็ยาก การ deploy แต่ละครั้งจึงเจ็บปวดรวดร้าว
ดังนั้นสิ่งที่ควรทำเป็นอันดับแรกเลย คือการกำหนดจำนวนและขนาดของงานที่ทำก่อนเลย
ยกตัวอย่างเช่น ทำทีละงาน กำหนดเวลาหรืออายุของ feature branch ที่สร้าวขึ้นมา เมื่อสิ้นสุดเวลาที่กำหนด หรือ งานที่ทำเสร็จแล้ว ให้ทำการ merge, test และ deploy กันเลย ที่สำคัญคือ ลบ branch เมื่อทุกอย่างมีสำเร็จ โดยวิธีการนี้ มันช่วยทำให้เราเห็นว่า สิ่งที่เราทำนั้นเป็นอย่างไร การทำงานของเราเป็นอย่างไร เพื่อปรับปรุงและแก้ไขต่อไป ที่สำคัญจะทำให้เราเห็นว่า feature หรือ story ที่พัฒนานั้น ควรมีขนาดเล็กเท่าไรดี และไม่มี branch ที่มีอายุนาน ๆ อีกต่อไป

สุดท้ายแล้วการ Pull Request ก็จะง่ายขึ้น

ถ้า feature นั้นมันเล็ก กำหนดจำนวนและขนาดของแต่ละ task ที่ทำ คือ การแก้ไขปัญหาที่ต้นเหตุ ไม่ใช่ไปแก้ไขที่ปลายเหตุ เช่น ถ้า code มัน conflict กันมีเครื่องมืออะไรช่วยไหม !! เป็นต้น
คำถามคือ วันนี้คุณมีปัญหาเรื่องนี้อยู่หรือไม่ ? ถ้ามี คำถามคือ คุณแก้ไขที่ต้นเหตุหรือปลายเหตุกันแน่ ?

Viewing all articles
Browse latest Browse all 1997

Trending Articles