สิ่งสำคัญของผู้ที่เริ่มหัดเรียนเขียนโปรแกรมด้วยภาษา golang จำเป็นต้องรู้และต้องทำ | หลักสูตรเรียนลัด



ผมเริ่มเขียน Golang เมื่อไม่นานมานี้ สำหรับสาเหตุที่อยากจะเขียนเพราะว่า  อาจจะเป็นค่านิยมส่วนตัวของผมเองที่ชอบในเรื่องของ ความใหม่ ความเร็ว (Performance) และความกระชับในการเขียน รวมถึงการอ่านบทความของท่านอื่น ๆ ที่เล่าถึงประสิทธิภาพด้านต่าง ๆ ของ Go เอาไว้มากมาย และความสามารถของมันบางอย่างแล้วพอดูพอฟังดูแล้ว ผมรู้สึกว่า "ใช่" คือถ้าไม่ได้ลองทำดู เหมือนตัวเองจะตกยุคแน่ ๆ ผมก็เลยตัดสินใจลองเขียน Golang ของตัวเองสักโปรเจ็ค ในส่วนของข้อมูล ตัวอย่าง แบบฝึกหัดของ Golang ที่เป็นพื้นฐานผมเชื่อว่ามีหลาย ๆ บล๊อกที่เขียนขึ้นมาแล้ว ผมเลยอยากจะไฮไลท์ ที่เป็นส่วนสำคัญที่จำเป็นต้องรู้ เพื่อให้เราก้าวข้ามการเขียน แบบพื้นฐานไปสู่มืออาชีพให้ได้ และขอออกตัวก่อนนะครับว่า ผมก็พึ่งเริ่มเขียน​ Golang ได้ไม่นานมานี้หากผิดพลาดประการใดสามารถเขียน Comment ไว้ได้ด้านล่างของบทความครับ

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

ก่อนจะเขียนโปรแกรมใด ๆ นั้นสิ่งที่สำคัญที่สุดคือสภาพแวดล้อมภายในเครื่องของคุณต้องให้มันสามารถรันโค๊ตโปรแกรมของภาษานั้น ๆ ขึ้นมาให้ได้เสียก่อน ไม่ว่าจะภาษาใดก็ตามส่วนการ set นั้นคุณสามารถจำลองผ่าน Docker หรือ ติดตั้งบนเครื่องนั้นก็สามารถทำได้เช่นเดียวกัน แต่สิ่งที่ต้องรู้คือ


  • 1.  ต้องติดตั้งตัวคอมไฟล์ (Compiler) ภาษา go ซึ่งสามารถ Download ได้จาก Internet มีทั้งในรูปแบบของ window ,​ osx และ linux ตามลิงค์​ https://golang.org/dl/ หลังจาก download มาแล้วถ้าเป็น window กับ osx ก็ติดตั้งบนปรกติแบบ application ทั่วไป 



  • 2. เครื่องมือ ผมชอบย้ำกับน้อง ๆ ในทีมผมเสมอว่า ถ้าเรามีเครื่องมือที่ดี ที่ช่วยในการทำอะไรก็ช่าง มันจะช่วยลดภาระงานเราอย่างมาก ดังนั้นเครื่องมือที่ผมเลือกใช้คือ Goland เป็นเครื่องมือของค่าย Jetbrains อันนี้ผมใช้เพราะผมเชื่อมั่นในผลงานของค่ายนี้ไม่ว่าจะเป็น phpstrom ,intellij ซึ่งในมุมมองของผม คือมันเป็นที่สุดของยุคแล้ว แต่อย่าลืมว่ามันมี license คือต้องซื้อก่อนถึงจะสามารถใช้งานได้ แต่หากจะได้ของฟรี เครื่องมือที่มาแรงตอนนี้คือ vscode จากค่าย microsoft สามารถ download มาใช้ฟรี แต่ต้องติดตั้ง plugin เพิ่มนิดหน่อยสำหรับ golang 



  • 3. ตั้งค่า $GOROOT กับ $GOPATH ทั้งสองตัวนี้เป็นส่วนหนึ่งในการสร้างสภาพแวดล้อม (Environment) ในการทำงานของเครื่อง แปลไทยเป็นไทย คือ สมมุติว่าเราเข้าไปที่ Terminal หรือ CMD ในเครื่อง Window เราต้องการจะพิมพ์คำสั่ง go แล้วให้มันทำงานได้ การตั้งค่า $GOROOT จึงเป็นสิ่งที่จำเป็น และแน่นอนเราไม่ต้องทำ ถ้าเราติดตั้ง go ผ่าน installer ถ้าติดตั้งเสร็จเรียบร้อย ไม่มีอะไรผิดพลาด ระบบจะตั้งค่าให้เราเองอัตโนมัติ  แต่สิ่งที่เราต้องทำคือ $GOPATH แปลไทยเป็นไทยคือ ที่อยู่ ของโปรเจ็้คเรานั่นเอง จำเป็นอย่างยิ่งที่ต้องให้มันตรงกับที่เราทำงาน เพราะเวลาที่เขียนโค๊ตไปแน่นอนว่าเราต้องใช้ Package หรือ Vendor หรือ Source code จากที่อื่น ๆ เพื่อเรียกใช้งานในโปรเจ็ค หากตั้งค่าผิดสิ่งที่เกิดอาจจะทำให้ Package หากันไม่เจอ หรือเธอไม่มี เวลาที่เขียนโค๊ตไปมันจะขึ้นแดง ๆ กับ package ที่ import เข้ามา ดั้งนั้นเรื่องนี้จึงมีความสำคัญก่อนที่เราจะไปทำอย่างอื่น คือต้องทำให้มันถูกต้องเสียก่อน สำหรับเครื่องมือ Goland สามารถตั้งค่าได้ง่าย ๆ ผ่านเมนู Performance -> GO -> GOPATH ได้เลย ตัวอย่างกรณีผมใช้ Osx project ผมอยู่ใน /User/Samark/go/ ผมก็จะเซ็ต GOPATH มาอยู่ตรงตามนี้เลยแค่นี้เอง สำหรับ window ก็แค่ไปตั้งค่า PATH ที่ Environment Variables  อ่านเพิ่มเติมได้ที่ https://github.com/golang/go/wiki/SettingGOPATH
  • 4. main.go จำเป็นต้องมีไฟล์ main.go เพื่อเป็นด่านหน้า ทางเข้า gateway เอกมัย แล้วแต่จะเรียก ซึ่งไฟล์​main.go นี้สำคัญอีกอย่างคือต้องมี func main() คู่กันเท่านั้น อันนี้เป็น synctex หรือไวยากรณ์ของมัน บังคับเลยนะว่าต้องเป็นแบบนี้เท่านั้น

ผมขอจบบทความเอาไว้แค่นี้ก่อน สำหรับเนื้อหาต่อไปจะมาเล่าถึงกับ golang ที่คิดไว้ในบทต่อไปมีดังนี้
- การสร้างและใช้งาน Interface แบบจริงจัง
- การสร้าง API Restfull ด้วย Golang
- การใช้งาน gorm (GO Object relational mapping) หรือการ query ข้อมูลในรูปแบบ orm
- การสร้าง Config กลางสำหรับใช้งานใน Project
- การสร้าง RestFull Api ที่รองรับหลายภาษา
- การสร้าง Method Chaining golang
ขอบคุณสำหรับการเข้ามาอ่านหากมีความคิดเห็นอย่างไร สามารถพิมพ์ให้คำแนะนำได้ตาม Comment ด้านล่างครับ


Share on Google Plus

About maxcom

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 ความคิดเห็น:

แสดงความคิดเห็น