version-control
ในการพัฒนา software นั้นสิ่งที่ขาดไปไม่ได้เลยก็คือ Version Control
ใช้สำหรับจัดการการเปลี่ยนแปลงต่าง ๆ
ทั้งการสร้าง การแก้ไข การลบ การ merge
ตัวอย่างเช่น source code และ configuration

แต่การใช้งาน Version Control ก็แตกต่างกันไป
บางคนใช้เพื่อ backup code
บางคนไม่เคย update ข้อมูลใน Version Control เลย
บางคนนำ source code ของตัวเองไปทับคนอื่นเฉยเลย
บางคนสร้าง branch เยอะมาก ๆ จนไม่รู้ว่า branch ไหนล่าสุด
บางคนบอกว่าเลิกใช้มันแล้ว เพราะว่าเกิด conflict มากมาย
บางคนบอกว่าใช้ไปทำไม ขอ thumbdrive มาแล้ว copy ไปสิเร็วกว่า

ดังนั้นจึงขอแนะนำว่าการใช้ Version Control นิดหน่อยดังนี้

ให้ทำการ update ข้อมูลต่าง ๆ ผ่านระบบให้บ่อยที่สุด
หรือทุกครั้งที่เปลี่ยนแปลงเรียบร้อยแล้ว
เพื่อทำให้ข้อมูลตรงกัน
เพื่อลด conflict ของข้อมูลลงไป
เพื่อลดความผิดพลาด
อย่าดอง code หรือการเปลี่ยนแปลงไว้บนเครื่องตัวเองนาน ๆ นะ !!

ถ้ามีการสร้าง branch ต่าง ๆ ขึ้นมา
เช่นมี branch hot fix สำหรับแก้ไข bug
ดังนั้นมีการแก้ไขใน branch hotfix แล้ว
กรุณาทำการ merge code ไปยัง branch ต่าง ๆ ด้วยนะครับ
มิเช่นนั้นในรอบการ deploy ต่อ ๆ ไป
bug ที่เคยแก้ไขไปแล้วอาจจะกลับมาอีกครั้ง
ดังนั้นจำนวน branch เยอะไม่น่ากลัวเท่าแก้ไขแล้วไป update ในทุก branch ที่เกี่ยวข้อง

การ checkin/commit/push หรือการบันทึกการเปลี่ยนแปลงใน Version Control นั้น
มันคือการพูดคุยของคนในทีมนั่นเอง
ดังนั้นสิ่งที่ควรทำคือค่อย ๆ พูดทีละเรื่อง
นั่นคือในแต่ละการเปลี่ยนแปลงควรมีขนาดเล็ก ชัดเจน
รวมทั้งคำอธิบายต้องตรงกับสิ่งที่เปลี่ยนแปลงด้วย
เนื่องจาก developer ชอบทำแบบนี้

  • การเปลี่ยนแปลงชื่อว่า fixed bug
  • ส่วนการเปลี่ยนแปลงมีไม่ต่ำกว่า 10 ไฟล์ !!
  • ซึ่งแบบนี้ไม่ควรทำนะครับ

สิ่งใดที่ไม่จำเป็นก็ไม่ต้องเอาขึ้น Version Control นะ
บางคนอาจจะไม่รู้ แต่ว่าต้องเรียนรู้ เช่น

  • การ comment code ไว้ เอาขึ้นทำไม ?
  • Configuration ของ IDE แน่นอนว่า ตัวเราเองอาจจะรอด แต่คนอื่น ๆ ในทีมไม่รอด เนื่องจากแต่ละเครื่องมี environment ที่ต่างกัน
  • สิ่งที่เกิดจากกระบวนการ build
  • พวก library ต่าง ๆ
  • ไฟล์ขนาดใหญ่ ๆ

ให้จำไว้ว่า Version Control นั้นทำการเก็บประวัติต่าง ๆ ไว้นะครับ
ดังนั้นรู้หมดว่า ใครทำอะไรลงไปบ้าง

โดยรวมแแล้วนั้น Version Control มันดีและมีประโยชน์มาก ๆ
ยิ่งถ้าใช้งานอย่างถูกวิธีแล้ว ก็จะทำให้เกิดประโยชน์มากขึ้นไปอีก
แต่ถ้าใช้แบบผิดวิธีมันก็เกิดโทษได้เช่นกัน