Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สรุปเครื่องมือที่ใช้บ่อย ๆ ในการพัฒนา Software

$
0
0

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

1. Terminal

คือ command line นั่นเอง ใช้สำหรับ execute process ต่าง ๆ ซึ่งสัมพันธ์กับงานที่พัฒนาด้วย ว่าจะใช้บ่อย หรือมากน้อยเพียงใด แต่ก็ต้องใช้เป็นประจำทุก ๆ วัน ตัวอย่างการใช้งานที่เร็ว ๆ มาก คือ การ copy/move/delete ไฟล์ การ download program/app สิ่งทุกสิ่งที่ทำงานผ่าน command line ได้ ปล. สำหรับคนที่ใช้งาน terminal น่าจะต้องใช้ Tmux ด้วยนะ

2. Docker

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

3. IntelliJ IDE

เป็น IDE (Integrated Development Environment) ที่ใช้งานเป็นประจำ ไม่ว่าจะภาษาโปรแกรมอะไรก็ใช้งาน IntelliJ IDE เป็นหลัก เนื่องจากมี feature ต่าง ๆ ที่ช่วยทำให้การพัฒนาเร็วและง่ายขึ้น ทั้ง Auto-completion, UI ที่ใช้ง่าย รวมไปถึง Error analysis และ Quick fix ให้ใช้งาน จากการใช้งานมาพบว่า เพิ่ม productivity อย่างมาก

4. Slack

เป็น app เอาไว้ใช้ติดต่อสื่อสาร พูดคุย และ sync yp กันภายในทีม เพื่อลดการใช้งาน email กันภายในทีม สามารถแบ่งกลุ่มหรือ channel ของการพูดคุย มี direct message ให้คุยตรง ๆ กันได้ รวมทั้งยังสามารถ integrate เข้ากับระบบต่าง ๆ ได้ง่ายอีกด้วย เช่น integrate เข้ากับระบบ Continuous Integration, Continuos Delivery เมื่อเกิดปัญหาก็ให้แจ้งไปยังคนหรือกลุ่มที่เกี่ยวข้อง รวมทั้งสามารถพัฒนา bot ไว้ใช้งานได้อีกด้วย ปล. ถ้าเสียเงินให้ slack จะดีกว่านี้ แต่เท่าที่ใช้งานแบบฟรีก็แจ่มแล้วนะ !!

5. Feedly

สำหรับการกรองข้อมูลต่าง ๆ ในโลก online ที่มีจำนวนเยอะมาก ๆ ผมจะทำการบันทึก feed หรือ website ที่น่าสนใจไว้ที่ Feedly ช่วยทำให้เราสามารถ update ข่าวสารต่าง ๆ ที่สนใจได้อย่างง่ายดายและรวดเร็ว เป็นเครื่องมือที่ผมใช้เป็นประจำทุกวัน

6. Git และ Github

Git เป็น distributed version control สำหรับการจัดการ source code หรือเอกสารของระบบงาน เพื่อทำการบันทึกการเปลี่ยนแปลงต่าง ๆ ไว้ ทำให้การทำงานเป็นทีมง่ายและสะดวกขึ้น ส่วน Github คือระบบ web สำหรับให้บริการ Git repository เราสามารถ push/pull code ได้ เราสามารถ upload/download ได้ เราสามารถค้นหาสิ่งที่ต้องการได้ สามารถเลือกใช้ได้ทั้งปรีและเสียเงิน หลาย ๆ บริษัทใช้ Github เป็นอีกช่องทางหนึ่งในการรับพนักงานด้วยนะ !! ถ้าต้องการติดตั้งเป็น server ของตัวเองสามารถใช้ Gitlab ได้ ปล. ใครบ้างที่ยังไม่ใช้ version control บ้างนะ ?

7. Sublime และ Atom

เป็น Text Editor ที่ใช้งานเป็นประจำ บางคนอาจจะบอกว่าทั้งสองต่างกันหรือดีกว่ากันอย่างไร แต่ผมก็ใช้ทั้งสองนั่นแหละ เนื่องจากโดยพื้นฐานจะไม่ต่างกันมาก ทั้ง shortcut key และระบบ plugin

8. Google Chrome

เป็น browser ที่ใช้บ่อยที่สุดแล้ว เนื่องจากมันใช้งานง่าย เร็ว แถมมี extension และ developer tool ให้ใช้แบบครบครัน ปล. กิน RAM น่าดู !!

9. Jenkins

สำหรับการสร้างระบบ Continuous Integration (CI) ของการพัฒนาระบบงานต่าง ๆ แล้ว จะเลือกใช้งาน Jenkins เป็นตัวแรก ช่วยให้เราสามารถสร้างระบบ build automation ของระบบได้ง่าย ดังนั้นเมื่อมีการเปลี่ยนแปลงเกิดขึ้นมา ระบบ Jenkins จะทำการ build แบบอัตโนมัติให้ เป็นสิ่งที่สำคัญมาก ๆ ต่อการพัฒนา software ถ้าเป็นระบบ Cloud จะใช้งานผ่าน Travis-CI

10. StackOverflow.com

สำหรับนักพัฒนาแล้ว StackOverflow คือคัมภีร์เปลี่ยนเส้นเอ็นเลยก็ว่าได้ เนื่องจากมีทุกคำตอบจากทุกคำถาม เพราะว่า ถ้าไปค้นหาจาก google ก็จะพบคำตอบแรก ๆ จากที่นี่ทั้งนั้น ดังนั้นนักพัฒนาต้องหัดใช้ให้เป็นนะครับ แล้วจะเพิ่ม productivity อย่างมาก ปล. อย่า copy คำถามมาใช้นะครับ !!
สุดท้ายก็ Youtube เอาไว้เปิดเพลงฟัง

Viewing all articles
Browse latest Browse all 1997

Trending Articles