ทำไมเราต้องใช้ github

ในงานด้านการพัฒนาโปรแกรมเว็บแอพลิเคชัน

เมื่อมีโปรแกรมเมอร์หลายคนสิ่งที่อาจจะเกิดความยุ่งยาก คือโปรแกรมเมอร์เกิดเขียนโปรแกรมซ้ำซ้อนกัน ทำให้โค้ดที่เขียนไว้ไม่อัพเดต และอาจเกิดเรื่องกินแหนงแคลงใจกันในหมู่โปรแกรมเมอร์ก็ได้ github จะช่วยลดปัญหาด้านการเขียนโปรแกรมซ้ำซ้อนกัน

โดย github เป็นโปรแกรมด้านเวอร์ชันคอนโทรล ที่ช่วยควบคุม process การทำงานระหว่างผู้พัฒนาโปรแกรมหลายคนให้ควบรวมเข้ามาเป็นโปรเจ็คเดียวกันก็ได้ โดยสมาชิกในทีมสามารถเขียนโปรแกรมในไฟล์เดียวกัน และสามารถ merge รวมกัน โดยพูดคุยกันก่อนที่จะอัพโหลดไฟล์ขึ้นไปบน github ได้

เพื่อประโยชน์การทำงานเป็นโปรเจ็ค แต่ว่าการจะใช้โปรแกรมนี้เราต้องรู้คำสั่งพื้นฐานบ้างเล็กน้อยสำหรับการเขียนโปรแกรมในการ ดาวน์โหลด หรืออัพโหลดไฟล์จาก repository ลงมาที่เครื่องคอมพิวเตอร์ของผู้ใช้งาน

ขั้นตอนการทำงานของ github คือเราต้องสร้าง repository เข้าไปก่อนและพยายามแบ่งหมวดหมู่การทำงานคล้ายๆ กับการสร้าง folder ใน windows และจากนั้นก็ copy link ที่เป็น repository ให้กับโปรแกรมเมอร์แต่ละคนได้ใช้งาน

Github เป็นโปรแกรมด้านการแชร์ไฟล์ (โค้ด) ที่มีประสิทธิภาพ เพื่อให้การทำงานของคนหลายคน ทำงานร่วมกันได้แบบไหลลื่น

มันเป็นโปรแกรมด้านการใช้งาน เวอร์ชันคอนโทรลที่ควบคุมการเขียนโปรแกรมของนักพัฒนาโปรแกรมที่มากกว่าหนึ่งคนในการเขียนโปรเจ็คต์ร่วมกัน ตัวอย่างเช่นทีมนักพัฒนาโปรแกรมต้องการสร้างเว็บไซต์ขึ้นมาสักเว็บหนึ่ง แต่ก็ต้องมีการตกลงขอบเขตของการเขียนว่า ผู้เขียนจะเขียนไปถึงส่วนไหน หรือในทางปฏิบัติอาจจะแยกกันเขียนคนละหน้าเว็บก็ได้

จากนั้นเมื่อทำการเขียนโปรแกรมที่เครื่องตัวเองเสร็จแล้ว ก็ให้ทำการอัพโหลด push file ของเครื่องตัวเองขึ้นไปที่ repository ในขณะที่การดาวน์โหลดซอร์สโค้ดจาก repository ลงสู่เครื่องตัวเองเรียกว่า pop 

ข้อดีของ github มีหลายอย่างมากๆ แต่ว่าหลายคนก็อาจจะสงสัยว่า ทำไมเราไม่ใช้ระบบ dropbox หรือระบบ cloud system  ก็เพราะว่าในการทำงานของ dropbox หรือระบบ cloud ไม่สามารถล็อกหรือแจ้งเตือนได้ว่าไฟล์ที่อยู่บนเว็บมีการดำเนินการแก้ไขอยู่หรือไม่ 

ไม่เหมือนกับ github ที่เหมือนกับมีการ synchronize โค้ดอยู่ตลอดเวลา หากว่าโปรแกรมเมอร์คนหนึ่งแก้ไขโค้ด ทางสมาชิกรายอื่นจะสามารถรู้ได้ทันทีว่าไฟล์มีการเปลี่ยนแปลงแก้ไขอยู่ เพื่อจะได้ไม่ต้องไปแก้ไขไฟล์ที่ซ้ำซ้อนกัน

และข้อดีคือมันมีตัวช่วย หรือ document ในการแนะนำการใช้งานว่าแต่ละเมนู แต่ละคำสั่งมีการใช้งานอย่างไร ทำให้การใช้งานง่ายขึ้นมาไม่น้อย ถึงแม้ว่าเราจะใช้ command line ในการอัพโค้ดหรือดาวน์โหลดโค้ดก็ตาม

สุดท้ายนี้การเลือกใช้โปรแกรมที่เหมาะสมในการควบคุมเวอร์ชันก็ขึ้นอยู่กับหัวหน้าทีมในการออกแบบ,วางแผนเพื่อให้การทำงานของทุกคนในทีมมีประสิทธิภาพมากยิ่งขึ้น