Chuyển đến nội dung chính

Khởi đầu với Go: Cài đặt môi trường và viết chương trình Hello World đầu tiên

Nếu bạn đang tìm kiếm một ngôn ngữ lập trình hiện đại, có hiệu năng cao, cú pháp đơn giản và đặc biệt phù hợp để xây dựng API, Microservices, Cloud hay DevOps, thì Go là một lựa chọn rất đáng cân nhắc.

Trong bài viết đầu tiên của series Học Go từ A-Z, chúng ta sẽ cùng:

  • Tìm hiểu Go là gì.
  • Cài đặt Go SDK và VS Code.
  • Khởi tạo một dự án Go đúng cách.
  • Viết chương trình Hello World đầu tiên.
  • Chạy và debug chương trình bằng VS Code.

Đây là những bước nền tảng mà bất kỳ lập trình viên Go nào cũng cần biết.

1. Go là gì?

Go (thường được cộng đồng gọi là Golang) là ngôn ngữ lập trình mã nguồn mở được phát triển bởi Google. Dự án bắt đầu vào năm 2007 bởi Robert Griesemer, Rob Pike và Ken Thompson, và được phát hành chính thức vào năm 2009.

Go được thiết kế để giải quyết những hạn chế của các ngôn ngữ truyền thống khi xây dựng những hệ thống lớn, cần khả năng mở rộng và xử lý đồng thời.

Ngày nay, Go được sử dụng rất rộng rãi trong:

  • Backend API
  • Microservices
  • Cloud Computing
  • DevOps
  • Networking
  • CLI Tools

Nhiều dự án nổi tiếng được xây dựng bằng Go như: Docker, Kubernetes, Terraform, Prometheus, Grafana Loki.

2. Tại sao nên học Go?

2.1. Hiệu năng rất cao

Go được biên dịch trực tiếp thành mã máy (Machine Code). Điều này giúp chương trình chạy rất nhanh và có thể phân phối dưới dạng một file thực thi duy nhất mà không cần cài đặt runtime như JVM của Java hoặc .NET Runtime.

2.2. Cú pháp đơn giản

Go nổi tiếng với triết lý: "Simple is better". Ngôn ngữ chỉ có khoảng 25 từ khóa và loại bỏ nhiều tính năng phức tạp thường gặp ở các ngôn ngữ hướng đối tượng (Không có class, không có kế thừa, không có constructor, không có overloading). Nhờ vậy code thường ngắn gọn, dễ đọc và dễ bảo trì.

2.3. Xử lý đồng thời (Concurrency) rất mạnh

One of the best features của Go là Goroutine. Goroutine là các tác vụ thực thi đồng thời có chi phí rất thấp (chỉ tốn khoảng vài KB RAM ban đầu). Điều này cho phép Go xử lý hàng nghìn hoặc thậm chí hàng triệu Goroutine cùng lúc trên hệ thống.


3. Chuẩn bị môi trường

Để lập trình Go, chúng ta cần chuẩn bị 3 công cụ chính:

Bước 1. Cài đặt Go SDK

  • Truy cập trang chính thức: https://go.dev/dl/
  • Tải phiên bản phù hợp với hệ điều hành của bạn (Windows: .msi, macOS: .pkg, Linux: .tar.gz).
  • Mở file và nhấn Next cho đến khi hoàn tất.

Bước 2. Kiểm tra Go đã được cài đặt

Mở Terminal hoặc Command Prompt và chạy lệnh:

go version

Nếu xuất hiện kết quả tương tự như go version go1.26.4 windows/amd64, nghĩa là Go đã được cài đặt thành công.

Bước 3. Cài đặt Visual Studio Code

Nếu chưa có VS Code, hãy tải tại: https://code.visualstudio.com/

Bước 4. Cài đặt Go Extension

Trong VS Code, nhấn Ctrl + Shift + X để mở mục Extensions. Tìm kiếm từ khóa "Go" và cài đặt extension được phát triển bởi Go Team (Google). Extension này sẽ hỗ trợ bạn IntelliSense, Auto Complete, Formatting, và Debug.

4. Tạo dự án Go đầu tiên

Giả sử chúng ta tạo một thư mục trống tên là first-golang-app trên máy tính. Hãy mở thư mục này bằng VS Code.

Khởi tạo Go Module

Kể từ Go 1.16, Go Modules đã trở thành cơ chế quản lý package mặc định. Bạn bắt buộc phải khởi tạo module ngay từ đầu để tránh các lỗi biên dịch khi chạy.

Mở Terminal trong VS Code (Ctrl + `) và chạy lệnh sau:

go mod init first-golang-app

Sau khi thực hiện, thư mục dự án sẽ tự động sinh ra file go.mod với cấu trúc như sau:

graph TD A[first-golang-app] --> B[go.mod] A --> C[main.go] style A fill:#f9f,stroke:#333,stroke-width:2px

Nội dung của file go.mod sẽ tương tự:

module first-golang-app

go 1.26.4
File go.mod dùng để làm gì?
Đây là file quan trọng nhất của một dự án Go dùng để lưu tên module, phiên bản Go và danh sách các thư viện dependency bên ngoài. Nó tương tự như package.json của Node.js, .csproj của .NET hoặc pom.xml của Maven.

5. Viết chương trình Hello World

Tạo một file mới tên là main.go nằm cạnh file go.mod và nhập đoạn mã nguồn sau:

package main

import "fmt"

func main() {
	fmt.Println("Hello, World!")
}

Giải thích ý nghĩa đoạn code:

  • package main: Mọi chương trình thực thi (executable) trong Go đều phải thuộc package main. Nếu không có dòng này, Go sẽ không thể tạo ra file chạy.
  • import "fmt": Khai báo sử dụng package chuẩn fmt (Format) dùng để in/đọc dữ liệu và định dạng chuỗi.
  • func main(): Đây là Entry Point (điểm khởi đầu) của chương trình. Khi chạy ứng dụng, Go luôn tự động gọi hàm này đầu tiên.
  • fmt.Println(): Lệnh in chuỗi văn bản ra Terminal và tự động xuống dòng.

6. Chạy và Debug chương trình

Cách chạy nhanh qua Terminal

Trong Terminal của VS Code, bạn gõ lệnh:

go run main.go

Kết quả hiển thị trên màn hình: Hello, World!

Quy trình hoạt động của lệnh 'go run' và 'go build'

Dưới đây là sơ đồ minh họa cách Go xử lý mã nguồn của bạn khi chạy hoặc biên dịch:

graph LR M[main.go] -->|go run| T[(Bộ nhớ tạm)] -->|Chạy trực tiếp| R[Kết quả: Hello World] M -->|go build| E[main.exe / File thực thi] -->|Phân phối/Chạy ứng dụng| R style E fill:#bbf,stroke:#333,stroke-width:2px

Cách gỡ lỗi (Debug) bằng VS Code

  1. Mở file main.go, đặt một Breakpoint (chấm đỏ) ở dòng code bạn muốn dừng.
  2. Nhấn phím F5 trên bàn phím.
  3. Nếu là lần đầu tiên gỡ lỗi, VS Code sẽ yêu cầu cài đặt công cụ Delve (dlv) — debugger chính thức của Go. Bạn có thể để extension tự động cài, hoặc chạy thủ công lệnh sau trong Terminal:
go install github.com/go-delve/delve/cmd/dlv@latest

Sau khi cài đặt xong, bạn tắt và mở lại VS Code, nhấn F5 là có thể debug mượt mà.

7. Một số lỗi thường gặp khi mới bắt đầu

Tên lỗi Nguyên nhân Cách khắc phục
go.mod file not found Bạn chưa khởi tạo cấu trúc Go Module cho thư mục dự án. Chạy lệnh: go mod init tên_dự_án trong Terminal.
go: command not found Go SDK chưa được cài đặt hoặc biến môi trường PATH chưa nhận diện được Go. Kiểm tra lại bằng lệnh go version hoặc khởi động lại máy tính/VS Code.
Không debug được bằng F5 Thiếu công cụ Delve hoặc mở sai thư mục làm việc (workspace). Cài đặt Delve thông qua lệnh go install và hãy đảm bảo bạn mở đúng thư mục gốc chứa file go.mod trong VS Code.

Tổng kết

Qua bài viết này, chúng ta đã hoàn thành việc tìm hiểu tổng quan về Go, cấu hình thành công môi trường lập trình chuẩn với Go Modules trên VS Code và xử lý gọn gàng các lỗi cài đặt ban đầu.

Ở bài tiếp theo, chúng ta sẽ bước vào tìm hiểu về Biến (Variables), Hằng (Constants) và các Kiểu dữ liệu cơ bản trong Go. Hẹn gặp lại các bạn!

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.