หลังจากที่ไม่ได้อัพเดทเนื้อหาเพิ่มมานานมาก
และเมื่อช่วงวันหยุดสุดสัปดาห์ที่ผ่านมาได้เข้าร่วมอบรมคอร์สเรียน Source Code Management ด้วย Git ที่ SPRINT3R [n.] (ซพรินเทอร์) ซึ่งบอกได้คำเดียวว่าคุ้มมากจริงๆ มันก็คุ้มตั้งแต่ได้เข้าไปเรียนตั้งแต่วันแรกแล้ว เรียนฟรี อาหารฟรี สอนดีเป็นกันเอง TA เยอะไม่เข้าใจติดปัญหาอะไรถามได้ตลอดเพราะ TA จะเข้ามาประกบติดตัวต่อตัวช่วยเหลือจนกว่าเราจะเข้าใจ หรือแม้แต่ติดปัญหาเรื่อง ใด ๆ ก็จะไปหาคำตอบให้จนได้ สำหรับการเรียนที่ SPRINT3R [n.] (ซพรินเทอร์) นี้บอกได้คำเดียวว่าการได้เข้ามาเรียนคุ้มทุกคอร์สครับ คอร์สเรียนเขามีคุณภาพจริง ๆ
คอร์สเรียน Source Code Management ด้วย Git (ระยะเวลา 2 วัน ช่วงวันเสาร์ที่ 12 กันยายน พ.ศ. 2558 – วันอาทิตย์ที่ 13 กันยายน พ.ศ. 2558) ณ SPRINT3R [n.] (ซพรินเทอร์) เขาบอกว่ารอบนี้เป็นรอบคืนกำไรสู่สังคม
เนื้อหาคอร์สเรียน
- Source Code Managment(SCM) คืออะไร?
- ทำไมเราต้องใช้ SCM และการวางกลยุทธ์
- SCM ด้วย Git
- Git คืออะไร?
- คำสั่งพื้นฐานสามัญประจำบ้านของ Git สำหรับการนำไปใช้งานได้เลย
- Git กับ Continuos Integration ด้วย Jenkins และ Repository Server
- อุปนิสัยใจคอและกมลสันดานที่ต้องมีในการทำ SCM
- อื่นๆ แล้วแต่คนสอนที่จะเพิ่มให้เข้าไป
วันแรกของการเข้าเรียน
ช่วงเข้าเมื่อจำนวนนักเรียนพร้อมก็เริ่มกันเลย
ทีมงานของ SPRINT3R นำโดยพี่หนุ่มแนะนำทีมและพูดเกริ่นนำเรื่อง GIT นั้นว่าคืออะไร มีปีะโยชน์อย่างไร แต่สิ่งที่จำเป็นมากเมื่อผู้ทีใช้งาน GIT จำเป็นต้องใส่ใจมากในการนำ GIT เข้ามาใช้ เรียกว่าถ้าใช้ GIT จำเป็นต้องทำ 4 ข้อนี้
1. ตกลงทีมเรื่องโครงสร้างของ sources code พูดถึงเรื่องโครงสร้างของ source code ของ Project ที่เราพัฒนาว่าจะวางโครงร่างอย่างไร มีไฟล์ มีโครงสร้างอย่างไรบ้าง
2. ตกลงเรี่องการใช้งาน Feature GIT เรื่องนี้ดูเป็นเรื่องธรรมดาแต่ถ้าเมื่อการพัฒนา Project ใหญ่ ๆ จำเป็นมาก ไม่ว่าจะเป็นเรื่องการแบ่ง Branch การทำงานออกเป็นส่วนๆ เพื่อที่จะติดตามการพัฒาได้ง่ายและนวมถึงคำสั่งพื้นฐานของการใช้งาน GIT เบื้องต้นด้วยเช่น git add,git commit,git push,git pull,… และอื่น ๆ อีกมากมาย
3. การ Merge code บ่อย ๆ เป็นการดูแลรักษาประวัติของการพัฒนาของ branch หลักของการพัฒนา และ ทำให้เห็นประวัติต่างๆ ในการพัฒนา รวมถึงเรื่องการติดตามของประวัติต่างๆ ของการพัฒนา หรือ commit ด้วย
4. เรื่อง commit message นั้นถือเป็นเรื่องจำเป็นมาก ๆ เพราะอย่างน้อยผู้พัฒนาคนอื่นมาดูการ commit code ครั้งนั้นและสามารถเข้าใจได้ง่านว่า นักพัฒนาคนที่ commit code มาเขาได้เปลี่ยนแปลง code อะไร ส่วนไหนไปบ้าง และการใส่ message ที่ดีจะมีประโยชน์ในภายหลังแน่ ๆ เพื่อ git มี Feature การดู log history ได้ ฉะนั้น message ดีจะช่วยให้เรา filter การ message เพื่อหาสิ่งใดสิ่งหนึ่งได้ง่ายๆ
มาดูภาพกาทำงานของ GIT กันก่อนเพื่อความเข้าใจ และจะได้อ่านเนื้อหาต่อไปได้เข้าใจยิ่งขึ้น
เมื่อเกริ่นเนื้อหาของ GIT กันได้คราว ๆ พอเข้าใจแล้วก็มาเริ่มการใช้งาน GIT กันเลย
เริ่มต้นก็ต้องไปติดตั้ง GIT ในเครือง Local ของเราก่อน
1. ลิ้งการ Download GIT :: GIT-SCM
หลังจากติดตั้งเสร็จก็ให้เปิด Git Bash ขั้นมาจะได้หน้าตาแบบนี้ (ขอพูดในเวอชั่นของ Windown นะครับ)
2. เริ่มคำสั่งการใช้งาน พื้นฐาน สร้าง local repository กันก่อน
$ git init
$ git status
คำสั่ง git status จำเป็นมากครับ เพื่อดูสถานะของการทำงาน ณ ปัจจุบันเลยว่าตอนนี้เราทำอะไรอยู่
3. ต่อไปลองสร้างไฟล์เพื่อทดสอบ (สร้างไฟล์อะไรก็ได้ คิดไม่ออกก็ hello.txt ไปก่อน)
4. เพิ่ม file ทดสอบเข้า stage area เพื่อรอการ commit code ไปยัง local repository โดยใช้คำสั่ง
$ git add hello.txt
5. เมื่อเรา coding จนพอใจและ add file ไปเก็บไว้ที่ stage area จนคิดว่าพอแล้วก็ต้อง นำไฟล์เข้า local repository ซะที โดยใช้คำสั่ง
$ git commit -m “create file hello.txt”
มาถึงขั้นตอนนี้ ไฟล์ทั้งหมดที่เราได้ add เข้าไปจะมาเก็บใน local repository เรียบร้อยแล้ว
6. เนื่องจาก local repository ยังเป็นการเก็บไฟล์ไว้ที่เครื่องเราเครื่องเดียวเท่านั้น ดังนั้นถ้าอยากให้ทีมพัฒนาของเราได้ source code ชุดนี้เราต้องทำการ push source code เหล่านี้ไปยัง remote repository โดย workshop ครั้งนี้ขอใช้ github ที่กำลังโด่งดังอยู่ในตอนนี้ ก็ให้เราสมัครให้เรียร้อย สำหรับคนที่ยังไม่มี account github เป็นของตัวเองก็ไปสมัครได้ ไม่มีค่าใช้จ่ายในการสมัคร และสร้าง remote repository ให้เรียบร้อย
ได้ remote repo เรียบร้อยแล้วก็ copy link มาเพื่อเอามาเชื่อมต่อกับ local repo ในเครื่องเรา และใช้คำสั่ง
$ git remote add origin [email protected]:pool13433/day-11.git
เท่านี้ remote repo และ local repo จะรู้จักกันแล้ว หลังจากนั้นก็ push เพื่อเราไฟล์จาก local repo ไปยัง remote repo โดยใช้คำสั่ง
$ git push origin master
เราก็จะได้ source code ในเครื่องเรา เหมือนกับ code บน server github เรียบร้อยแล้ว
$ git log
คำสั่ง git log เอาไว้ติดตามดู history ของการทำงาน git ว่าเราทำอะไรผ่านไปแล้วบ้าง
เมื่อลองใช้งานคำสั่งได้กันบ้างแล้วเหล่าพี่ ๆ sprint3r ก็จัด workshop เล็ก ๆ มาให้เล่นกันเล่น
และก็จบไปสำหรับวันแรกของการเรียน GIT
วันที่ 2 ของการเรียน git
วันนี้เริ่มด้วยการเอาเนื้อหาของการเรียน class เมื่อครั้งที่แล้ว (ก็วันเสาร์แหละครับ) มาสรุปทบทวนกัน และพี่ปุ๋ย (Somkiat.cc)ก็มาพูดถึงความสามารถอื่น ๆ ของ GIT ตัวอย่างเช่น
การ filter ดู history log จาก message,date,… ต่างๆ อีกมากมาย
ช่วงบ่ายทางทีมจัด workshop มาให้ทำกัน ครั้งนี้จะได้เริ่มรวมทีมเพื่อใช้งาน git กับ project จริง ๆ แล้ว
โดย workshop จะมีข้อมูลว่า
- มีการตั้งโจทย์ หรือเรียกว่า requirement ของ user ก็ว่าได้
- ให้รวมทีมกันทำโดยให้ระยะเวลาในการพัฒนา 3.30 ชม.
- โดยเมื่อหมดเวลาจะต้องมีงานส่ง
หลังจากระยะเวลาได้ผ่านไปเรื่อย ๆ ระหว่างนั้นพวกเราก็สร้าง Project ที่พัฒนาด้วยการใช้ git ก็ดำเนินการไปเรื่อย ๆ เริ่มพบปัญหา เริ่มได้พูดถกเถียงปัญหา ได้ร่วมกันช่วยแก้ปัญหา หาแนวทางแก้ไขปัญหาร่วมกัน สุดท้ายหมดเวลา พวกเราก็มีผลงานส่งทันตามกำหนด (ฺBUG นิไม่ต้องถาม เพียบครับ)
หลังจากจบการทำ workshop สุดท้ายทุกคนก็สรุปความรู้ที่ได้จากการร่วมกันทำ workshop นี้ในความรู้สึกของแต่ละคน สิ่งนี้ทำให้เราได้เห็นความคิดของเพื่อน ได้มุมมองใหม่ๆ และสุดท้ายได้เพื่อนใหม่ๆ เพียบ
เท่าที่ผมได้สัมผัสกับ git ในช่วงระยะเวลา 2 วัน (สัมผัสแบบการพัฒนาเป็นทีม ปกติใช้งาน git คนเดียว) สิ่งที่ดีๆ หลาย ๆอย่างของ git ทำให้การพัฒนา project ของเราเป็นระเบียบและเป็นแบบแผนที่ดีมาก ผมเลยอยากแนะนำ เพื่อน ๆ ให้เริ่มลองใช้งานกับมันดู ถ้าใครยังไม่เริ่มก็ให้เริ่มตั้งแต่วันนี้ เพราะ git จะทำให้ชีวิตของคุณมีประสิทธิภาพมากขึ้น จริงๆ
เครดิต รูปภาพประกอบ :: http://backlogtool.com/git-guide/en/intro/intro1_2.html