Go (Golang) เป็นภาษาการเขียนโปรแกรมที่พัฒนาโดย Google และได้รับความนิยมในกลุ่มโปรแกรมเมอร์ที่ต้องการสร้างระบบที่มีประสิทธิภาพสูง เช่น Cloud Services และ Distributed System ด้วยความสามารถในการจัดการ concurrency ที่โดดเด่นและการทำงานที่รวดเร็ว ในโพสต์นี้เราจะมาสำรวจว่าทำไม Go ถึงเป็นที่นิยม และวิธีเริ่มต้นใช้งานภาษานี้
1. ทำไมต้องเลือก Go?
Go ได้รับการออกแบบมาเพื่อตอบโจทย์การพัฒนาแอปพลิเคชันที่ต้องการความเร็วและประสิทธิภาพ โดยเฉพาะในยุคที่ Cloud Computing และ Microservices กำลังเป็นที่นิยม ด้วย syntax ที่เรียบง่ายและความสามารถในการทำงานแบบ concurrency ผ่าน goroutines ทำให้ Go เป็นทางเลือกที่ดีสำหรับการพัฒนา
2. การติดตั้ง Go
การเริ่มต้นกับ Go นั้นง่ายมาก สามารถดาวน์โหลดได้จาก เว็บไซต์ทางการของ Go หลังจากติดตั้งเสร็จแล้ว ให้ตรวจสอบการติดตั้งโดยใช้คำสั่งใน Terminal หรือ Command Prompt:
bashgo version
หากติดตั้งเรียบร้อยจะแสดงเวอร์ชันของ Go ที่ติดตั้งอยู่
3. สร้างโปรเจกต์ Go แรก
ในการสร้างโปรเจกต์ Go ใหม่ ให้สร้างโฟลเดอร์ใหม่และใช้คำสั่งต่อไปนี้ใน Terminal:
bashmkdir myfirstgoapp
cd myfirstgoapp
go mod init myfirstgoapp
คำสั่ง go mod init
จะสร้างไฟล์ go.mod
ซึ่งใช้สำหรับการจัดการ dependencies
4. เขียนโปรแกรม Hello World
สร้างไฟล์ใหม่ชื่อ main.go
และใส่โค้ดต่อไปนี้ลงไป:
gopackage main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
จากนั้นให้ใช้คำสั่ง go run main.go
เพื่อรันโปรแกรม คุณจะเห็นข้อความ “Hello, World!” แสดงขึ้นมา
5. การจัดการกับ Dependencies
Go มีระบบการจัดการ dependencies ที่ง่ายและมีประสิทธิภาพ โดยคุณสามารถเพิ่ม dependency ด้วยคำสั่ง go get
เช่น:
bashgo get github.com/gorilla/mux
คำสั่งนี้จะดาวน์โหลดแพ็คเกจที่ต้องการและเพิ่มลงใน go.mod
6. การทำงานแบบ Concurrency
Go มีความสามารถในการจัดการ concurrency โดยใช้ goroutines ซึ่งเป็นวิธีการที่ช่วยให้เราสามารถรันฟังก์ชันหลาย ๆ ตัวพร้อมกันได้ ตัวอย่างการใช้ goroutine:
gopackage main
import (
"fmt"
"time"
)
func sayHello() {
for i := 0; i < 5; i++ {
fmt.Println("Hello from Goroutine")
time.Sleep(100 * time.Millisecond)
}
}
func main() {
go sayHello()
time.Sleep(500 * time.Millisecond) // ให้ Goroutine ทำงาน
fmt.Println("Main function finished")
}
ในตัวอย่างนี้ ฟังก์ชัน sayHello
จะทำงานพร้อมกับ main
function
7. สร้าง HTTP Server ด้วย Go
Go มีแพ็คเกจ net/http
ที่ช่วยในการสร้าง HTTP server ได้ง่าย ๆ ตัวอย่างการสร้าง server แบบง่าย ๆ:
gopackage main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
เมื่อรันโปรแกรมนี้ คุณสามารถเข้าถึงได้ที่ http://localhost:8080
และจะเห็นข้อความที่คุณส่งไป
8. การสร้าง RESTful API
การสร้าง RESTful API ด้วย Go เป็นเรื่องง่าย โดยใช้ router เช่น gorilla/mux
นี่คือตัวอย่างการสร้าง API:
gopackage main
import (
"encoding/json"
"net/http"
"github.com/gorilla/mux"
)
type Message struct {
Text string `json:"text"`
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
message := Message{Text: "Hello, API!"}
json.NewEncoder(w).Encode(message)
}
func main() {
r := mux.NewRouter()
r.HandleFunc("/hello", helloHandler).Methods("GET")
http.ListenAndServe(":8080", r)
}
9. การจัดการกับ Error
การจัดการกับ error เป็นสิ่งสำคัญใน Go โดย Go จะไม่ใช้ exception แต่จะคืนค่าผลลัพธ์พร้อมกับ error ตัวอย่างการจัดการ error:
goresult, err := someFunction()
if err != nil {
fmt.Println("Error:", err)
return
}
10. สรุป
Go (Golang) เป็นภาษาที่เหมาะสำหรับการพัฒนาแอปพลิเคชันที่ต้องการ performance สูง เช่น Cloud Services และ Distributed System ด้วย syntax ที่เรียบง่ายและคุณสมบัติ concurrency ที่โดดเด่น คุณสามารถเริ่มต้นใช้งาน Go ได้ง่าย ๆ ตามขั้นตอนที่กล่าวถึงในโพสต์นี้ ทำให้ Go เป็นทางเลือกที่ยอดเยี่ยมสำหรับโปรแกรมเมอร์ที่ต้องการพัฒนาระบบที่มีประสิทธิภาพสูงและตอบโจทย์ความต้องการในยุคปัจจุบัน