Development Environment ตอน 2


       ต่อจากตอนที่แล้วนะครับ หลังจากเลือกระบบปฏิบัติการได้แล้วทีนี้มาถึงเครื่องมือกันบ้างแต่ก่อนอื่นต้องพูดถึง Stack ที่อยู่บน Windows ก่อน
       บน Windows นั้นผมใช้ WAMP เป็นหลักครับ ซึ่งหลังจากลองมาหลายๆ ตัวรวมถึงลงเองด้วย โดยความเห็นส่วนตัวแล้วใช้ได้ที่สุดแล้วครับดีกว่า AppServ ที่เริ่มล้าสมัยไปเรียบร้อยแล้ว เบากว่า XAMPP หน่อย รวมถึงเลือกเวอร์ชั่นของ PHP ได้ก็น่าจะเพียงพอแล้ว ในส่วนของ Editor หรือ IDE นั้นช่วงเดือนแรกๆ นั้นผมติดหนึบอยู่กับ PHPStorm 7 มากครับ ยิ่งได้ Classroom License มาแล้วด้วยตอนนั้นแทบไม่ใช้ตัวอื่นเลย เครื่องมือครบทุกอย่างตั้งแต่ Editor ยัน Deploy รวมถึงรองรับ Version Control ในตัว ทำให้ผมแทบไม่ชายตามองไปหาอย่างอื่นเลย (จนกระทั่งกลับมาใช้ Vim)


       ในส่วนของ Version control นั้นถึงแม้ PHPStorm จะรองรับการจัดการในตัวเองอยู่แล้ว แต่พอทำงานจริงผมเลือกใช้ SourceTree ในการจัดการแทน เพราะในส่วนของการทำ merge+release ประจำสัปดาห์นั้น ถ้าใช้ Command line นี่อาจจะหืดขึ้นคอได้ การมี GUI Tool มาช่วยทำให้ลดเวลาในการแก้ Merge Conflict ลงไปได้มากทีเดียว เพราะมี Diff Tools ในตัวเองไว้คอยเช็ค รวมถึงตัว SourceTree เองรองรับ Git Workflow Model อยู่แล้ว แค่นี้ก็เพียงพอแล้วครับสำหรับผม ส่วนตัวโฮสต์นั้นทีมผมใช้ Github เป็นหลัก ครับซึ่งตัวโปรเจ็คจบผมก็ไม่ใช่ความลับอะไรอยู่แล้วเพราะฉะนั้นก็เลยเก็บแบบ Public ไปไม่ต้องเสียค่าบริการรายเดือนด้วย
       อีกโปรแกรมหนึ่งที่ขาดไม่ได้เลยคือ Teamviewer ครับ ซึ่งเป็นโปรแกรมหลักที่ใช้งานเวลาผมกับทีมต้อง Pair Programming กันไม่ว่าจะเหตุผลใดก็ตาม ซึ่งตัว Teamviewer นี่นอกจาก control ตัว client ได้พร้อมกันแล้วยังมี VoIP ในตัว (ซึ่งอันหลังเพิ่งรู้เพราะแต่ก่อนใช้ Skype คู่ไปด้วยตลอดเลย) แต่ก็ต้องแลกมาด้วย Bandwidth ที่เสียไปกับเสียง
       ส่วนสุดท้ายในเรื่องของการแชร์ไฟล์ทั่วไปทีมผมใช้ Dropbox เป็นหลักในการแชร์ทุกอย่างที่ไม่ใช่ Source code ตั้งแต่ไฟล์เล่มโปรเจ็ค ยันรูปถ่ายของบอร์ดประจำวัน ซึ่งสิ่งที่ต้องมีควบคู่กันมาเมื่อเริ่มแชร์ไฟล์ร่วมกันคือระเบียบในการจัดเก็บ (เหมือนกัน Git ที่ต้องมีระเบียบในการแตก Branch) ไม่งั้นทุกอย่างมันจะมั่วไปหมด ซึ่งโครงสร้างโฟลเดอร์ก็ขึ้นอยู่กับงานที่ทำเช่น เก็บ Design Document, เอกสารที่เกี่ยวกับฐานข้อมูล, ไฟล์เล่มโปรเจ็คแต่ละเวอร์ชั่น ฯลฯ ซึ่งสิ่งนี้เป็นสิ่งที่ต้องตกลงกันเองในทีมว่าจะเก็บยังไง แต่กับทีมผมบางโฟลเดอร์ทีมก็คิดระเบียบกันขึ้นมาเองแล้วก็ใช้ตามกันมา ซึ่งเป็นสิ่งที่มหัศจรรย์มากอย่างนึงเพราะเราแทบไม่เคยพูดถึงรูปแบบเลย แต่มันก็ค่อยๆ เกิดขึ้นมาเอง

Comments