TDE&W (2) :: GIT BASIX COMMAND

จริงๆ ตอนแรกผมว่าจะไม่เขียน ตอนที่ 2 นี่แล้วเนื่องจากเหตุผลหลักเลยขี้เกียจและงานยุ่งมาก แต่พอวันหนึ่งผมเปิดเช็คยอดวิวของบล็อกอันนี้ ผมถึงเห็นว่ายังมีคนรออยู่ นอกจากนั้นแล้วการได้ยินเสียงตอบรับจากน้องที่เคยสอนการใช้ Git ไปว่ายังใช้ไม่ค่อยเป็น ทำให้ผมตระหนักว่าต้องกลับมาเขียนมันจริงๆ ถึงมันจะเป็นเรื่องเบสิกมากๆ ก็จริงๆ ในมุมมองเรา แต่สำหรับบางคนบางครั้งมันเป็นเรื่องใหม่สำหรับเขา เพราะฉะนั้นแล้วเนี่ยแทนที่เราจะนั่งเฉยๆ ปล่อยให้เขาล้มหายตายจากไป ผมคิดว่าอย่างน้อยเราก็ควรจะแบ่งปันความรู้ไว้บ้าง และเป็นการทวนความรู้ตัวเองจริงๆ อีกด้วยว่ารู้จริงรึเปล่า จากตอนที่แล้วผมบุ่มบ่ามมาพูดถึง Workflow ทั้งๆ ที่คนอ่านนั้นอาจจะไม่รู้เลยด้วยซ้ำว่าการแตก Branching หรือการรวม Merging และจากประสบการณ์ไปสอนกลุ่มย่อยๆ 2 กลุ่มทำให้รู้ว่า เรื่อง Branching/Merging เป็นเรื่องที่สอนให้คนเข้าใจจริงๆ ยากที่สุด และมีเวลาสอนน้อยสุดเพราะเป็นเรื่องหลังๆ เลยงั้นคราวนี้ ผมจะไล่ใหม่ทีละหัวข้อ รวมถึงเอาประสบการณ์มาสอดแทรกไว้ด้วยถ้ามีโอกาส (การใช้งานผมใช้ SourceTree เป็นหลักนะครับ ถ้ามีใครเป็นสิงห์ Git Command มาก็ขอนับถือในความสามารถมา ณ ที่นี้ครับ) Clone/New สิ่งนี้เป็นสิ่งแรกที่ต้องทำเมื่อเราจะใช้งาน Git กับ Project ใดๆ ก็ตามไม่ว่าจะทำเองหรือทำกับทีม สิ่งสำคัญ 2 สิ่งสำหรับการ Clone ก็คือ Source Path กับ Destination Path โดย Source Path จะเป็น link ของ Remote repository ไว้สำหรับเก็บ Source code นอกเครื่องเรา (ที่เราเรียกว่า Local repository) โดยส่วนใหญ่มักจะอยู่ในรูป http url หรือ ssh url เช่น https://github.com/user/project.gitพอเราได้ลิงค์มาแล้วแปะไว้โปรแกรมจะสร้าง Destination Path ซึ่งเป็นโฟลเดอร์ที่เราจะใช้ในการเก็บไฟล์ที่เรา Clone มานี้และเป็นโฟลเดอร์หลักที่เราจะใช้ในการทำงานในโปรเจ็คนี้นะครับ โดยถ้าไม่พอใจก็เปลี่ยนได้ซึ่งส่วนใหญ่ก็จะเปลี่ยนอยู่แล้วเพราะคงไม่มีใครไปนั่งพัฒนาเว็บอยู่ใน My Document หรอกจริงมั้ยครับ ...

December 9, 2013 · 3 min

TEAM DEVELOPMENT ENVIRONMENT & WORKFLOW (1) - VERSION CONTROL SYSTEM

ช่วงเวลาสองสัปดาห์ที่ผ่านมาหลังสอบไล่ Project I เสร็จหลาย คนอาจจะเริ่มอ่านหนังสือสอบไล่ตัวอื่นกันบ้างแล้ว ผมก็สอบครับ แต่สอบน้อยกว่าคนอื่น (3 ตัว) ช่วงเวลาที่หยุดระหว่างสอบ นอกจากจะอ่านหนังสือ แล้วสิ่งที่ผมไม่อาจลืมได้คือ Project II เหลือเวลาให้ Implement กับ Testing เพียงแค่ 4 เดือนโดยประมาณนับจากนี้ ซึ่งสิ่งที่ยากไม่ใช่เวลา แต่เป็นคนครับ ผมตั้งคำถามกับตัวเองว่าทำยังไงถึงจะให้คน 3 คนทำงานใน Project เดียวกันได้ เร็วที่สุด จุดประสงค์ที่ผมเขียนเอนทรี่ในชุด Team Development Environment & Workflow (ตอนต่อๆ ไปจะเรียกมันว่า TDE&W นะครับ) ก็เพื่อที่จะรวบรวมคำถามและวิธีการที่ผมเคยสงสัยมาตลอดในการสร้าง Software ออกมาตัวนึง เพื่อเก็บไว้ใช้อ่านทวนทีหลัง และที่สำคัญไว้เผยแพร่ความรู้ให้กับคนที่ยังไม่รู้เหมือนผมก่อนหน้านี้ จริงอยู่ถ้าในโลกการทำงานแล้วเรื่องแบบนี้บางครั้งเป็นเรื่องที่ Basic มากแต่ถ้ามองย้อนกลับมาในระดับการศึกษาผมค้นพบว่า น้อยคนที่จะเรียนรู้ลำดับการทำงานแบบนี้ซึ่งสามารถช่วยให้ทำงานได้อย่างเป็นระบบและมีประสิทธิภาพสูงขึ้นมาก Git Workflow คำถามแรกที่ผมถามตัวเองอย่างที่ผมได้บอกไปแล้วผมคิดถึง Git ก่อนเลยครับเนื่องจากมีประสบการณ์การทำงานกับมันมาบ้างใน Project ที่ใช้ Rails แต่สิ่งสำคัญอย่างนึงที่ผมยังไม่รู้คือ Git Workflow ครับโชคดีที่มีคนเขียนแนะนำเรื่องนี้ไว้แล้วในบทความเรื่องA Successful Git branching model src: https://nvie.com/posts/a-successful-git-branching-model/ ...

October 1, 2013 · 3 min