Tại sao cài đặt môi trường tử tế lại quan trọng?
Cài đặt môi trường phát triển rất quan trọng nếu các bác muốn có một trải nghiệm lập trình mượt mà, ngon nghẻ. Đối với Go, điều này có nghĩa là cài đặt ngôn ngữ này vào máy tính, cấu hình các công cụ và chuẩn bị một IDE (Integrated Development Environment) hỗ trợ việc code, debug và quản lý dự án.
Cài đặt Golang
Có nhiều cách cài Golang cho các môi trường khác nhau. Các bác dùng Windows, macOS hay Linux sẽ có những bộ cài riêng biệt. Bất kể hệ điều hành nào thì các bác đều có thể thực hiện các bước sau:
Truy cập trang download chính thức của Go tại: https//golang.org/dl/
Chọn phiên bản phù hợp với hệ điều hành của các bác:
Windows: Chọn bộ cài MSI
macOS: Tải file PKG về
Linux: Tải tarball hoặc các bác dùng package manager tương ứng của bản phân phối Linux mà các bác đang dùng (ví dụ aptitude hoặc yum)
Với Windows:
Chạy file cài đặt MSI
Làm theo hướng dẫn trên màn hình (cái này cứ bấm Next là được thôi)
Chắc chắn rằng tùy chọn “Add to PATH” được chọn khi cài
Kiểm tra xem mình đã cài đúng chưa bằng cách mở Command Prompt và chạy lệnh:
go version
Với macOS:
Mở file PKG
Làm theo hướng dẫn cài
Hoặc các bác có thể dùng Homebrew để cài bằng lệnh
brew install go
Kiểm tra bản cài thông qua Terminal:
go version
Với Linux (nếu không dùng package manager để cài):
Giải nén file tarball vào
/usr/local/
Cài đặt biến môi trường để trỏ tới file thực thi của Go
Kiểm tra bản cài thông qua Terminal:
go version
Cài đặt IDE Visual Studio Code
Có rất nhiều lựa chọn cho các bác khi lập trình Go, thậm chí dùng Notepad++ để mà code thì cũng không phải lựa chọn tồi vì khá nhiều microservices của Go được triển khai với lượng code rất nhỏ và nằm gọn gàng trong một file duy nhất. Goland từ JetBrain là lựa chọn ngon lành nhất nếu các bác có tiền vì chi trả khoảng 200k đến 300k/tháng riêng cho IDE cũng không phải quá lớn đối với anh em lập trình viên.
Tuy nhiên, nếu các bác là sinh viên đang đi học hoặc các bác chỉ muốn vọc vạch thì tốt hơn hết hãy chọn các tool miễn phí và cài extension hỗ trợ cho Golang. Sublime hay Atom đều là những lựa chọn tốt, nhưng Visual Studio Code (VS Code) là lựa chọn phổ biến hơn cả và được khuyên dùng.
Trong series này, tôi chỉ sử dụng VS Code nên sẽ chỉ hướng dẫn các bác cài VS Code mà thôi.
Cài đặt VS Code
(Phần này chỉ là tiêu đề cho đúng quy trình chứ tôi biết các bác đều tự cài được bằng cách vào link này https://code.visualstudio.com/download)
Cài đặt Go extension cho VS Code
Các bước cài như sau:
Mở VS Code lên
Nhấn vào mục Extensions ở thanh công cụ bên trái
Gõ từ khóa “Go” để tìm extension Go được cung cấp bởi Microsoft
Cài extension này
Extension này cung cấp các tính năng như sau:
IntelliSense - Kết quả xuất hiện cho các hàm/biến khi nhập.
Điều hướng code - Nhảy đến hoặc xem trước khai báo của hàm/biến.
Chỉnh sửa code - Hỗ trợ các đoạn code đã lưu, định dạng và tổ chức code, và tổ chức tự động các lần nhập.
Chẩn đoán - Lỗi khi build, kiểm tra và kiểm tra lỗi được hiển thị khi nhập hoặc khi lưu.
Hỗ trợ nâng cao cho việc kiểm tra và gỡ lỗi
Cài đặt các tools cho Go
Khi các bác lần đầu mở một Go file, VS Code sẽ yêu cầu cài đặt các công cụ cần thiết. Các công cụ ấy bao gồm:
gopls
(language server)dlv
(debugger)gocode
(autocompletion - dùng để tự động hoàn thành cú pháp)golint
(linter - dùng format code cho đẹp)godef
(go to definition - dùng để chuyển tới phần triển khai của function và biến)
Mặc dù được cài tự động, các công cụ này đều có thể được cài đặt thủ công thông qua lệnh:
go install golang.org/x/tools/gopls@latest
Cấu hình VS Code cho Golang
Để biến VS Code thành một IDE dành riêng cho Golang, các bác có thể làm theo các bước sau:
Thêm cấu hình riêng cho Golang bằng cách vào User Settings (phím tắt Ctrl+,) và thêm đoạn JSON sau vào (bước này không nhất thiết phải làm vì khi cài Go extension cấu hình mặc định đã đủ để code):
{ "go.useLanguageServer": true, "go.gopath": "/path/to/your/gopath", "go.toolsManagement.autoUpdate": true, "go.formatTool": "gofmt", "go.lintTool": "golangci-lint" }
Cấu hình workspace:
Tạo một thư mục tên
.vscode
(lưu ý dấu chấm ở đầu tên thư mục) trong thư mục project của các bácThêm
settings.json
để thiết đặt các cấu hình của riêng project (phần này sẽ nói sâu hơn ở các bài khác)
Workspace và GOPATH
Trước đây, theo kiểu truyền thống chúng ta có cấu trúc thư mục để định nghĩa GOPATH như sau:
~/go/
├── src/ # Mã nguồn
├── pkg/ # Các package
└── bin/ # Các lệnh thực thi (sau khi biên dịch code thành mã nhị phân
Mã nguồn của chúng ta sẽ bắt buộc phải nằm trong GOPATH, tạo ra một môi trường làm việc tù túng khó chịu.
Với cách tiếp cận hiện đại, chúng ta không bị phụ thuộc vào GOPATH nữa mà thay vào đó là Go modules. Một Go modules có thể được tạo ở bất cứ đâu và phần phụ thuộc của nó với các package ngoại vi được định nghĩa trong file go.mod
. Để khởi tạo một module mới, các bác gõ lệnh sau:
go mod init yourproject
Cách tiếp cận này cho phép:
Quản lý các phần phụ thuộc tự động
Tạo ra các file
go.mod
vàgo.sum
để liệt kê các phần phụ thuộc
Dựng project đầu tiên
Một ví dụ kinh điển trong lập trình các bác đã biết đó là tạo một chương trình in ra màn hình dòng chữ “Hello World”. Dưới đây tôi sẽ mô tả cách thức tạo ra project với chương trình như vậy trong Golang. Ở đây tôi khuyến nghị dùng Linux OS hoặc các bác sử dụng Git Bash gõ lệnh cho nó thân thiện:
Tạo thư mục chứa project:
mkdir hello-go cd hello-go
Khởi tạo module:
go mod init hello-go
Tạo file
main.go
package main import "fmt" func main() { fmt.Println("Hello, Go Programming World!") }
Chạy thử chương trình:
go run main.go
Các công cụ bổ sung
Ngoài những thứ kể trên, có một vài công cụ mà các bác nên có khi sử dụng VS Code cho Golang.
Các extension cho VS Code bao gồm:
Error Lens: Cải thiện việc nhấn mạnh lỗi trong code
GitLens: Công cụ hỗ trợ quản lý phiên bản với Git
Các công cụ command line:
gofmt
Công cụ format code chính thức của Golanggolangci-lint
Công cụ linter dễ nắm bắtgo vet
Công cụ khảo sát tĩnh (static analysis)
Xử lý các vấn đề thường gặp
Các vấn đề tiềm tàng
Lúc cài đặt môi trường, các vấn đề dưới đây là những vấn đề thường gặp mà các bác cần lưu ý kiểm tra kĩ:
Cấu hình biến môi trường PATH không được cài đặt đúng, dẫn đến không chạy được các lệnh biên dịch của Go
Cài đặt các công cụ Go không đầy đủ, đây là vấn đề hiếm khi xảy ra vì mọi thứ về cơ bản được cài đặt tự động
Vấn đề tương thích phiên bản nếu các bác chạy code từ các dự án quá cũ. May mắn là vấn đề này cũng được hạn chế ở mức tối thiểu vì Go là một ngôn ngữ khá ổn định
Xung đột giữa các extensions trong VS Code, đây cũng là vấn đề ít gặp vì các extensions của VS Code dành cho Go cũng chỉ loanh quanh mấy cái cơ bản phổ biến
Chẩn đoán lỗi
# Kiểm tra phiên bản cài đặt Go, nếu lệnh này báo lỗi thì cần kiểm tra lại biến môi trường PATH
go version
# Kiểm tra các biến môi trường Go
go env
# Kiểm tra phiên bản của bộ công cụ Go chuẩn
go version gopls
Kết luận
Một môi trường phát triển được cấu hình tốt cho phép các bác tạo ra một nền móng vững chắc cho quá trình phát triển và giúp công việc thông suốt, hiệu quả. Các bác nên đọc kĩ và hiểu các tài liệu chính thức của Go để đảm bảo có đủ những công cụ cần thiết cho việc phát triển.
Bước tiếp theo sau bài này:
Khám phá các tính năng của các extensions trong VS Code dành cho Golang
Thực hành viết một vài chương trình Go nhỏ dựa trên các tài liệu có sẵn
Thử nghiệm các cấu hình khác nhau
Sau này, tôi sẽ bàn thêm cụ thể về cấu hình chạy chương trình Go trong thư mục .vscode
như đã đề cập ở trên. Chúc các bác code vui vẻ!