[Go] Go Lang ฉบับมือใหม่หัดขับ
Go ถูกสร้างโดย Google เพื่อตอบโจทย์การเขียนโปรแกรมให้มีลักษณะดังนี้
- Static typing and run-time efficiency (like C++)
- Readability and Usability (like Python or JavaScript)
- High-performance networking and multiprocessing
- .....(wiki).....
จะเห็นว่าไม่มีภาษาไหน สามารถตอบโจทย์นี้ได้ครบเลย Java ก็ performance ไม่ดี, C ถึงแม้จะเร็วแต่ก็อ่านยากเกินไป หรือแม้แต่ภาษาใหม่ๆ ที่ลู่เข้าสู่ functional language ที่ว่าเข้าใจได้ง่าย แต่ Go ก็มองว่า OOP มันซับซ้อนและเงื่อนไขจุกจิกก็มีอยู่มาก
Cross compiling เป็นความสามารถนึงที่ Go มีเหนือภาษาอื่นๆ ซึ่ง Go สามารถ build executable binary สำหรับแต่ละ OS ได้เลย
Go มี concept ว่า ไฟล์ที่ได้มานั้นต้องสามารถเอาไปใช้งานเป็น Application ได้ทันที (ไม่ต้องการ core libraray เพิ่มเติม) ดังนั้นแล้ว ข้อเสียของ Go ก็คือ executable file จะมีขนาดใหญ่กว่าการ build จากภาษา C ที่คาดหวังว่า library พื้นฐานจะต้องมีอยู่แล้ว
Gopher |
เข้าสู่การทดลอง
การติดตั้ง
- ติดตั้ง Go (Download)
*คนที่ไม่อยากติดตั้งบนเครื่องไปลองเขียน Online ได้ที่ https://play.golang.org - เมื่อติดตั้งแล้ว ให้ทำความรู้จักกับ 2 path นี้ไว้ด้วย
GOROOT => directory ที่ install Go (C:\Go, /usr/local/go
)
GOPATH => directory ที่รวม package ต่างๆ (%userprofile%\go, $HOME/go
) - ติดตั้ง (Visual Studio Code) **อย่าลืมติดตั้ง plugins ที VS Code เตือนด้วยนะ
- สร้างไฟล์
main.go
package main import ( "fmt" ) func main() { fmt.Println("Hello, playground") }
- VS Code จะเตือนให้เราติดตั้ง plugin เพิ่มเติม เราก็เออ-ออ-ห่อหมกไป
Go เป็นของ Google แต่ Microsoft มาทำ plugin บน VS Code ให้นะเอ้อ
ติดตั้ง Analysis Tools ด้วย เพื่อให้ VS Code เก่งขึ้นไปอีก เช่น formatter จะจัดโค้ดอัตโนมัติเมื่อมีการ save file ลดปัญหา conflict code ที่เกิดจากแต่ละคนลายมือโค้ดไม่เหมือนกันSource Code ตัวอย่าง
ตัวอย่าง Syntax เพื่อให้ได้เห็นรูปแบบของภาษา
**ก่อนจะก๊อปไปลองเล่น มีข้อนึงที่อยากให้จำไว้ให้ดี คือเรื่อง "Naming Convention" เพราะชื่อ function อักขระแรก จะมีความหมายต่อการกำหนดการเข้าถึงด้วย (access modifier)
รันโปรแกรมทดสอบ
- function
main()
เป็นจุดเริ่มต้นการทำงานของโปรแกรม (เหมือนกับหลายๆ ภาษา) - เขียนคำสั่งใน Terminal เพื่อทดสอบ
$ go buildสร้างไฟล์ executable binary สามารถ click-to-run ได้เลย
$ go runสร้างไฟล์ binary และ execute ทันที
จริงๆ แล้ว Go เป็นภาษาที่ได้รับความนิยมในหมู่ Backend Developer หรือใช้สำหรับสร้าง services / microservices เนื่องจาก Go มี performance ที่ดีซึ่งไว้จะอัพเดตให้ฟังกันต่อโพสหน้านะครับ