blog.dopana

Back

Go (Golang) là ngôn ngữ do Google phát triển, được thiết kế cho hệ thống phân tán và microservices. Nó đơn giản, nhanh, và cực kỳ hiệu quả cho backend.

Tại Sao Go?#

  • Đơn giản — Không class, không kế thừa, không generics (trước 1.18)
  • Nhanh — Biên dịch ra binary, gần tốc độ C
  • Concurrency built-in — Goroutines nhẹ hơn thread rất nhiều
  • Deploy dễ — Build ra 1 file binary, không cần runtime

Cú Pháp Cơ Bản#

Struct & Interface#

Error Handling — Không Exception#

func Divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, fmt.Errorf("cannot divide by zero")
    }
    return a / b, nil
}

func main() {
    result, err := Divide(10, 0)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(result)
}
go

Goroutines & Channels — Concurrency Mạnh Mẽ#

Ví dụ Thực Tế — Fetch Nhiều URL#

Standard Library — Mạnh, Không Cần Framework#

Go Module#

# Khởi tạo module
go mod init myapp

# Thêm dependency
go get github.com/gorilla/mux

# Download dependencies
go mod download

# Build
go build -o myapp .

# Chạy
./myapp
bash

Go vs Các Ngôn Ngữ Khác#

GoNode.jsPython
Performance⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Concurrency⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Learning curve⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Deploy1 binaryNeed Node runtimeNeed Python + packages

Kết Luận#

Go là lựa chọn tuyệt vời cho:

  • REST API / Microservices
  • CLI tools
  • Network services (proxy, load balancer)
  • DevOps tooling (Docker, Kubernetes, Terraform viết bằng Go)

Nếu bạn cần performance, concurrency, và deploy đơn giản — Go là câu trả lời.

Tài liệu tham khảo#