Thiết lập môi trường Go
Đường dẫn tải về
Tải trực tiếp: https://golang.org/dl/ hoặc sử dụng bản mirror Trung Quốc (khuyến nghị): https://golang.google.cn/dl/
Cài đặt trên Windows
Chạy file .exe đã tải về với quyền quản trị, thực hiện các bước cài đặt tiêu chuẩn.
Cài đặt trên Linux
Kết nối đến máy chủ Linux và thực hiện tải về:
wget https://dl.google.com/go/go1.14.linux-amd64.tar.gz --no-check-certificate
Giải nén và cấu hình hệ thống
# Giải nén vào thư mục /usr/local/ (thư mục kết quả có tên là go)
sudo tar -C /usr/local -xzf go1.14.linux-amd64.tar.gz
# Thêm đường dẫn /usr/local/bin vào biến môi trường PATH để hệ thống nhận diện lệnh go
echo 'export GOROOT=/usr/local/go' | sudo tee /etc/profile.d/golang.sh
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/profile.d/golang.sh
Cài đặt và cấu hình Visual Studio Code
- Tải từ trang chủ: https://code.visualstudio.com/#alt-downloads - chọn phiên bản phù hợp với hệ điều hành
- Mở bảng điều khiển Extensions trong VSCode
- Cài đặt tiện ích mở rộng Go và gói ngôn ngữ tiếng Trung
- Cài đặt các thành phần hỗ trợ phát triển Go
Các phương pháp hỗ trợ phát triển
Hai phương pháp phổ biến hiện nay:
- Phương pháp truyền thống: Sử dụng nhiều công cụ độc lập như gocode (đề xuất mã), guru (điều hướng mã nguồn)...
- Phương pháp hiện đại: Sử dụng Language Server chính thức của Google "gopls" cho các tính năng nâng cao
Do sự ra đời của go mod, phương pháp truyền thống gặp nhiều vấn đề (như không hiển thị gợi ý mã đúng cách), nên khuyến nghị chuyển sang dùng gopls chính thức.
Cài đặt gopls
Nếu mạng ổn định, thực hiện trực tiếp:
go install golang.org/x/tools/gopls@latest
Với môi trường mạng bị giới hạn, sử dụng proxy:
go env -w GOPROXY=https://proxy.golang.org,direct
go install golang.org/x/tools/gopls@latest
Cấu hình trong VSCode (Ctrl + Shift + P)
{
"go.useLanguageServer": true,
"[go]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
},
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.snippetSuggestions": "top"
},
"[go.mod]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"gopls": {
"usePlaceholders": true,
"staticcheck": false
}
}