Go Zero to Hero - Bài 3: Lựa chọn IDE và viết chương trình "Hello World" đầu tiên
Khi mới bước chân vào hệ sinh thái của Go, việc lựa chọn công cụ và hiểu rõ cấu trúc của một đoạn code cơ bản là bước đệm quan trọng nhất.
1. Lựa chọn "Vũ khí": VS Code hay GoLand?
Cộng đồng Gopher (những người lập trình Go) hiện nay chủ yếu chia làm hai thái cực khi chọn công cụ soạn thảo. Mỗi bên đều có thế mạnh riêng:
Thái cực 1: Visual Studio Code (Miễn phí, Quốc dân, Siêu nhẹ)
Không thể phủ nhận sự thống trị của VS Code. Để biến VS Code thành một IDE Go thực thụ, bạn chỉ cần một thao tác duy nhất:
- Mở tab Extensions (
Ctrl+Shift+X), tìm extension "Go" (được phát hành chính chủ bởi Go Team at Google) và cài đặt. - Khi bạn mở một file
.golần đầu, VS Code sẽ hiện thông báo góc dưới yêu cầu cài đặt thêm các tools hỗ trợ (nhưgopls,dlv,...). Hãy bấm Install All.
Điểm mạnh:
- Khởi động cực nhanh, không ngốn RAM.
- Extension "Go" tích hợp sẵn Language Server (
gopls), giúp tự động format code, auto-complete siêu tốc và gợi ý import thư viện rất thông minh.
Thái cực 2: GoLand của JetBrains (Trả phí, Hạng nặng, Full-option)
Nếu bạn đã quen với triết lý của các IDE như PHPStorm, WebStorm hay IntelliJ, thì GoLand là một sự chuyển tiếp hoàn hảo. Nó được JetBrains đo ni đóng giày riêng cho Go.
Điểm mạnh:
- Giao diện quen thuộc cho dân Backend chuyên nghiệp.
- Công cụ Debug (gỡ lỗi) cực kỳ mạnh mẽ trực quan.
- Tích hợp sẵn Database tools cực đỉnh (kết nối trực tiếp MySQL, PostgreSQL, Redis ngay trong IDE) và Git visualization tuyệt vời.
Lời khuyên: Nếu mới bắt đầu, VS Code là quá đủ để bạn luyện công. Khi nào vào các dự án Enterprise khổng lồ, cần trace luồng logic rườm rà, hãy cân nhắc dùng GoLand.
2. Viết và "Giải phẫu" chương trình Hello World
Hãy mở IDE của bạn lên, tạo một thư mục mới (ví dụ: hello-world), chạy lệnh go mod init hello ở Terminal để khởi tạo dự án. Sau đó tạo file main.go và gõ lại đoạn code kinh điển sau:
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
Bây giờ, hãy đặt code lên bàn mổ:
Dòng 1: package main
Mọi file code Go đều bắt buộc phải bắt đầu bằng khai báo package. Khái niệm này giống như Namespace trong C++ hoặc PHP. Tuy nhiên, package main là một trường hợp đặc biệt:
- Trình biên dịch (Compiler) của Go quy định: Chỉ những file thuộc
package mainmới có thể build ra được file thực thi (executable binary). - Nếu bạn đặt tên package khác (ví dụ:
package utils), code đó sẽ được hiểu là một thư viện (library) để tái sử dụng ở chỗ khác, chứ không thể chạy trực tiếp được.
Dòng 3: import "fmt"
- Từ khóa
importdùng để gọi các thư viện khác vào sử dụng. fmt(đọc là format) là một thư viện tiêu chuẩn (Standard Library) cốt lõi của Go, chuyên xử lý việc định dạng dữ liệu đầu vào/đầu ra (In ra màn hình, format chuỗi,...).- Sự khắt khe của Go: Nếu bạn
import "fmt"nhưng ở dưới không sử dụng đến nó, Go sẽ báo lỗi và không cho biên dịch. Tính năng này ép lập trình viên phải dọn dẹp code rác, giúp file binary cuối cùng luôn nhỏ gọn nhất có thể.
Dòng 5-7: func main()
- Từ khóa
funcdùng để khai báo một hàm (function). - Hàm
main()là điểm bắt đầu (Entry point) của toàn bộ chương trình. Khi ứng dụng chạy, hệ điều hành sẽ tìm đến hàmmain()này để thực thi những lệnh bên trong đầu tiên. fmt.Println(): Gọi hàmPrintlntừ thư việnfmtđể in ra chuỗi có kèm ký tự xuống dòng (Line break). Bạn có để ý chữPđược viết hoa không? Trong Go, viết hoa chữ cái đầu tiên đồng nghĩa với việc hàm đó là Public (có thể truy cập từ bên ngoài package).
3. gofmt - Kẻ độc tài chấm dứt mọi cuộc chiến
Nếu để ý khi code bằng VS Code hoặc GoLand, mỗi khi bạn bấm Ctrl + S (Lưu file), các khoảng trắng dư thừa, dấu ngoặc nhọn { } sẽ tự động nhảy về đúng chuẩn.
Đó là tác phẩm của gofmt.
Trong các ngôn ngữ khác, các developer hay cãi nhau ỏm tỏi về việc nên thụt lề bằng Tab hay Space, hay dấu ngoặc nhọn mở { nên nằm cùng dòng hay xuống dòng. Với Go, cha đẻ của nó quyết định: Chỉ có một chuẩn duy nhất!
Công cụ gofmt được tích hợp thẳng vào ngôn ngữ để tự động format mọi dòng code theo một quy tắc chung. Điều này mang lại một lợi ích khổng lồ: Code của team bạn, dù được viết bởi 10 người khác nhau, trông sẽ giống hệt như chỉ một người viết. Nó giúp việc đọc hiểu code của người khác dễ dàng hơn bao giờ hết.
Tổng kết
Đến đây, bạn đã có môi trường code chuyên nghiệp và hiểu rõ cơ chế cấu tạo của một ứng dụng Go cơ bản, đặc biệt là sự khắt khe đầy tính toán (chặn import thừa, format cứng nhắc) để giữ cho mã nguồn luôn sạch sẽ.
All rights reserved