- การตั้งค่าสภาพแวดล้อมสำหรับเขียนโปรแกรม Go (Go Programming Setup)
- 2. ติดตั้ง Go
- 4. ติดตั้งบน macOS
- 5. ติดตั้งบน Linux
- 6. ตรวจสอบ Environment ของ Go
- 7. ติดตั้ง Visual Studio Code
- 8. ติดตั้ง Go Tools ใน VS Code
- 9. gopls คืออะไร
- 10. สร้างโปรเจกต์ Go แรก
- 11. สร้างโปรแกรม Hello World
- 12. Build โปรแกรม Go
- 13. Project Structure ที่แนะนำ
- 14. การจัดการ Dependency ด้วย Go Modules
- 15. การ Format โค้ด
- 16. ตั้งค่า VS Code สำหรับ Go
- 17. ตรวจสอบโค้ดด้วย go vet
- 18. การเขียน Unit Test
- 19. Debug Go ด้วย VS Code
- 20. คำสั่ง Go ที่ควรรู้
- 21. สร้าง .gitignore
- 22. Workflow สำหรับเริ่มโปรเจกต์ใหม่
- 23. Go Development Workflow ที่แนะนำ
- 24. ตัวอย่าง .vscode/tasks.json
- 25. Checklist ก่อนเริ่มเขียน Go
- สรุป
#การตั้งค่าสภาพแวดล้อมสำหรับเขียนโปรแกรม Go (Go Programming Setup)
Go หรือ Golang เป็นภาษาโปรแกรมแบบ compiled language ที่พัฒนาโดย Google โดยมีจุดเด่นด้านความเรียบง่าย ประสิทธิภาพสูง การทำงานพร้อมกันด้วย Goroutine และมีเครื่องมือสำหรับพัฒนาโปรแกรมมาให้ค่อนข้างครบ เช่น formatter, test runner, dependency management และ build tool
บทความนี้อธิบายการตั้งค่าสภาพแวดล้อมสำหรับเริ่มเขียน Go ตั้งแต่ติดตั้ง Go, ตั้งค่า Visual Studio Code, สร้างโปรเจกต์แบบ Go Module ไปจนถึงการ Run, Build และ Test โปรแกรม
อัปเดต: กันยายน 2026 — Go รุ่นเสถียรล่าสุดในสายหลักคือ Go 1.27.x
#1. เครื่องมือที่ควรติดตั้ง
สำหรับการพัฒนา Go เบื้องต้น แนะนำให้มีเครื่องมือดังนี้
- Go SDK
- Visual Studio Code
- Go Extension for VS Code
- Git
- Terminal เช่น PowerShell, Windows Terminal, Terminal หรือ Bash
goplsสำหรับ Language Server- Delve สำหรับ Debugging
โครงสร้างโดยรวมจะเป็นดังนี้
Developer
|
v
VS Code
|
+-- Go Extension
| |
| +-- gopls
| +-- Delve
| +-- Go Tools
|
v
Go SDK
|
+-- go run
+-- go build
+-- go test
+-- go fmt
+-- go vet
+-- go mod
#2. ติดตั้ง Go
ดาวน์โหลด Go จากเว็บไซต์อย่างเป็นทางการ
https://go.dev/dl/
เลือกไฟล์ติดตั้งให้ตรงกับระบบปฏิบัติการและสถาปัตยกรรมของเครื่อง เช่น
- Windows x86-64 →
windows-amd64 - Windows ARM64 →
windows-arm64 - macOS Apple Silicon →
darwin-arm64 - macOS Intel →
darwin-amd64 - Linux x86-64 →
linux-amd64 - Linux ARM64 →
linux-arm64
#3. ติดตั้งบน Windows
ดาวน์โหลดไฟล์ .msi จากเว็บไซต์ Go แล้วติดตั้งตาม Wizard
โดยทั่วไป Go จะถูกติดตั้งไว้ที่
C:\Program Files\Go
ตัวติดตั้งจะเพิ่ม Go ลงใน PATH ให้โดยอัตโนมัติ
หลังติดตั้ง ให้ปิดและเปิด Terminal ใหม่ แล้วตรวจสอบด้วย
go version
ตัวอย่าง
go version go1.27.1 windows/amd64
ตรวจสอบ Environment ของ Go
go env
#4. ติดตั้งบน macOS
สามารถใช้ Installer จากเว็บไซต์ Go หรือใช้ Homebrew
brew install go
ตรวจสอบ
go version
ตัวอย่าง
go version go1.27.1 darwin/arm64
สำหรับ Mac รุ่น Apple Silicon ควรได้ architecture เป็น
arm64
#5. ติดตั้งบน Linux
ตัวอย่างสำหรับ Linux x86-64
ดาวน์โหลดไฟล์ Go จากเว็บไซต์ทางการ แล้วแตกไฟล์ไปยัง /usr/local
ตัวอย่างแนวทาง
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.27.1.linux-amd64.tar.gz
เพิ่ม Go ลงใน PATH
export PATH=$PATH:/usr/local/go/bin
สามารถเพิ่มคำสั่งนี้ใน
~/.bashrc
หรือ
~/.zshrc
จากนั้น reload
source ~/.bashrc
ตรวจสอบ
go version
#6. ตรวจสอบ Environment ของ Go
ใช้คำสั่ง
go env
ตัวแปรสำคัญที่ควรรู้ ได้แก่
GOROOT
GOPATH
GOMODCACHE
GOCACHE
GOOS
GOARCH
GOPROXY
ตัวอย่าง
go env GOPATH
macOS/Linux มักเป็น
/home/user/go
หรือ
/Users/user/go
Windows มักเป็น
C:\Users\username\go
สำหรับโปรเจกต์ Go สมัยใหม่ เราใช้ Go Modules เป็นหลัก จึงไม่จำเป็นต้องสร้างโปรเจกต์ทั้งหมดไว้ภายใน
GOPATH
#7. ติดตั้ง Visual Studio Code
ดาวน์โหลดจาก
https://code.visualstudio.com/
หลังติดตั้ง เปิด VS Code แล้วไปที่
Extensions
ค้นหา
Go
และติดตั้ง Extension ที่ Publisher คือ
Go Team at Google
ชื่อ Extension
Go
Extension ID
golang.go
#8. ติดตั้ง Go Tools ใน VS Code
Go Extension ใช้เครื่องมือหลายตัว เช่น
gopls— Language Serverdlv— Debuggergoimports— จัดรูปแบบและจัดการ importstaticcheck— Static Analysis
ใน VS Code กด
Ctrl + Shift + P
หรือ macOS
Command + Shift + P
จากนั้นพิมพ์
Go: Install/Update Tools
เลือกเครื่องมือที่ต้องการ หรือเลือกทั้งหมด
#9. gopls คืออะไร
gopls คือ Go Language Server ที่ดูแลโดยทีม Go
ช่วยให้ VS Code มีความสามารถ เช่น
- Auto Completion
- IntelliSense
- Go to Definition
- Find References
- Rename Symbol
- Diagnostics
- Code Action
- Auto Import
- Formatting
ตรวจสอบว่า gopls ถูกติดตั้งแล้ว
gopls version
หากยังไม่มี สามารถติดตั้งได้ด้วย
go install golang.org/x/tools/gopls@latest
#10. สร้างโปรเจกต์ Go แรก
สร้าง Folder
mkdir hello-go
cd hello-go
สร้าง Go Module
go mod init example.com/hello-go
ระบบจะสร้างไฟล์
go.mod
ตัวอย่าง
module example.com/hello-go
go 1.27
หากโปรเจกต์จะเก็บบน GitHub สามารถตั้ง module path เป็น repository URL ได้ เช่น
go mod init github.com/username/hello-go
#11. สร้างโปรแกรม Hello World
สร้างไฟล์
main.go
เขียนโค้ด
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
รันโปรแกรม
go run .
หรือ
go run main.go
ผลลัพธ์
Hello, Go!
#12. Build โปรแกรม Go
ใช้คำสั่ง
go build
หรือ
go build .
บน Windows จะได้ไฟล์ประมาณ
hello-go.exe
บน Linux/macOS
hello-go
จากนั้นรัน
Linux/macOS
./hello-go
Windows
.\hello-go.exe
#13. Project Structure ที่แนะนำ
โปรเจกต์ขนาดเล็กสามารถเริ่มต้นแบบง่ายได้
hello-go/
├── go.mod
├── go.sum
├── main.go
└── README.md
สำหรับ Web API หรือระบบที่เริ่มมีขนาดใหญ่ขึ้น อาจใช้โครงสร้าง
myapp/
├── cmd/
│ └── api/
│ └── main.go
│
├── internal/
│ ├── handler/
│ ├── service/
│ ├── repository/
│ └── model/
│
├── pkg/
├── configs/
├── migrations/
├── tests/
├── go.mod
├── go.sum
├── .gitignore
└── README.md
คำอธิบาย
| Folder | หน้าที่ |
|---|---|
cmd/ |
Entry point ของ application |
internal/ |
Package ที่ใช้เฉพาะภายใน project |
handler/ |
HTTP Handler / Controller |
service/ |
Business Logic |
repository/ |
ติดต่อ Database |
model/ |
Data Model / Entity |
pkg/ |
Package ที่อาจ reuse ได้ |
configs/ |
Configuration |
migrations/ |
Database Migration |
tests/ |
Integration / E2E tests |
ไม่จำเป็นต้องใช้โครงสร้างขนาดใหญ่ตั้งแต่เริ่มต้น ควรเพิ่ม folder เมื่อความซับซ้อนของโปรเจกต์เพิ่มขึ้น
#14. การจัดการ Dependency ด้วย Go Modules
หากต้องการเพิ่ม Library ภายนอก เช่น Gin
go get github.com/gin-gonic/gin
Dependency จะถูกบันทึกใน
go.mod
และ checksum จะอยู่ใน
go.sum
หลังเพิ่มหรือลบ dependency ควรรัน
go mod tidy
คำสั่งนี้จะ
- เพิ่ม dependency ที่ขาด
- ลบ dependency ที่ไม่ได้ใช้งาน
- ปรับ
go.mod - ปรับ
go.sum
#15. การ Format โค้ด
Go มี formatter มาตรฐาน
go fmt ./...
Go จึงไม่จำเป็นต้องตกลงเรื่อง style ของ indentation มากเหมือนบางภาษา เพราะ formatter เป็นส่วนหนึ่งของ toolchain
ใน VS Code สามารถเปิด Format on Save
{
"[go]": {
"editor.defaultFormatter": "golang.go",
"editor.formatOnSave": true
}
}
#16. ตั้งค่า VS Code สำหรับ Go
เปิดไฟล์
.vscode/settings.json
ตัวอย่าง
{
"[go]": {
"editor.defaultFormatter": "golang.go",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"gopls": {
"ui.semanticTokens": true
}
}
หากต้องการรูปแบบที่เข้มขึ้น สามารถใช้ gofumpt
{
"gopls": {
"formatting.gofumpt": true
}
}
#17. ตรวจสอบโค้ดด้วย go vet
ใช้
go vet ./...
go vet ช่วยตรวจรูปแบบโค้ดที่อาจมีปัญหา แม้ compiler จะยัง compile ได้
แนะนำให้ใช้ก่อน commit หรือใน CI/CD
go fmt ./...
go vet ./...
go test ./...
#18. การเขียน Unit Test
สมมติไฟล์
calculator.go
package calculator
func Add(a, b int) int {
return a + b
}
สร้าง
calculator_test.go
package calculator
import "testing"
func TestAdd(t *testing.T) {
got := Add(2, 3)
want := 5
if got != want {
t.Errorf("Add(2, 3) = %d; want %d", got, want)
}
}
รัน test
go test ./...
แสดงรายละเอียด
go test -v ./...
ตรวจ coverage
go test -cover ./...
#19. Debug Go ด้วย VS Code
Go Extension ใช้ debugger ชื่อ Delve
ติดตั้งด้วย
go install github.com/go-delve/delve/cmd/dlv@latest
ตรวจสอบ
dlv version
ใน VS Code สามารถ
- คลิกด้านซ้ายของเลขบรรทัดเพื่อสร้าง Breakpoint
- กด
F5 - เลือก Go Debug Configuration
- ตรวจค่าตัวแปรใน Variables
- ใช้ Step Over / Step Into / Continue
#20. คำสั่ง Go ที่ควรรู้
ตรวจ version
go version
ดู environment
go env
สร้าง module
go mod init github.com/username/project
จัด dependency
go mod tidy
เพิ่ม dependency
go get github.com/example/package
รันโปรแกรม
go run .
Build
go build .
Format
go fmt ./...
Static check เบื้องต้น
go vet ./...
Test
go test ./...
Test แบบ verbose
go test -v ./...
Coverage
go test -cover ./...
ดู documentation
go doc fmt
#21. สร้าง .gitignore
ตัวอย่าง
# Build output
/bin/
/dist/
# Executables
*.exe
*.exe~
*.dll
*.so
*.dylib
# Test binary
*.test
# Coverage
coverage.out
coverage.html
# Environment
.env
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
หากต้องการแชร์ .vscode/settings.json ให้ทีมใช้ร่วมกัน สามารถนำ .vscode/ ออกจาก .gitignore
#22. Workflow สำหรับเริ่มโปรเจกต์ใหม่
ตัวอย่าง Workflow
mkdir go-api
cd go-api
git init
go mod init github.com/username/go-api
code .
สร้าง main.go
package main
import "fmt"
func main() {
fmt.Println("Go project is ready")
}
ตรวจสอบ
go fmt ./...
go vet ./...
go test ./...
go run .
จากนั้น Commit
git add .
git commit -m "Initial Go project"
#23. Go Development Workflow ที่แนะนำ
ระหว่างพัฒนา
Write Code
|
v
Format
go fmt ./...
|
v
Static Analysis
go vet ./...
|
v
Test
go test ./...
|
v
Build
go build ./...
|
v
Git Commit
สามารถนำขั้นตอนเหล่านี้ไปใช้ใน GitHub Actions, GitLab CI, Jenkins หรือระบบ CI/CD อื่นได้
#24. ตัวอย่าง .vscode/tasks.json
สามารถสร้าง Task สำหรับตรวจสอบ project
ไฟล์
.vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Go: Test All",
"type": "shell",
"command": "go test ./...",
"group": "test",
"problemMatcher": "$go"
},
{
"label": "Go: Vet",
"type": "shell",
"command": "go vet ./...",
"problemMatcher": "$go"
},
{
"label": "Go: Build",
"type": "shell",
"command": "go build ./...",
"group": "build",
"problemMatcher": "$go"
}
]
}
#25. Checklist ก่อนเริ่มเขียน Go
ตรวจสอบทีละรายการ
[ ] ติดตั้ง Go
[ ] go version ทำงาน
[ ] go env ทำงาน
[ ] ติดตั้ง VS Code
[ ] ติดตั้ง Go Extension
[ ] ติดตั้ง gopls
[ ] ติดตั้ง Delve
[ ] สร้าง go.mod
[ ] สร้าง main.go
[ ] go run . สำเร็จ
[ ] go fmt ./... สำเร็จ
[ ] go vet ./... สำเร็จ
[ ] go test ./... สำเร็จ
[ ] Git repository พร้อมใช้งาน
#สรุป
การตั้งค่าสภาพแวดล้อมสำหรับพัฒนา Go ไม่ซับซ้อน เนื่องจาก Go มี toolchain สำคัญมาให้ในตัวอยู่แล้ว หลังติดตั้ง Go และ VS Code พร้อม Go Extension นักพัฒนาสามารถเริ่มต้นโปรเจกต์ด้วย
go mod init
จากนั้นใช้คำสั่งหลักในวงจรพัฒนา
go fmt ./...
go vet ./...
go test ./...
go build ./...
สำหรับผู้เริ่มต้น ไม่จำเป็นต้องกำหนดโครงสร้างโปรเจกต์ที่ซับซ้อนตั้งแต่แรก ให้เริ่มจาก main.go และ go.mod ก่อน แล้วค่อยแยก package และ folder ตามความซับซ้อนของระบบ
Go เหมาะสำหรับงานหลายประเภท เช่น
- REST API
- Microservices
- CLI Tools
- Cloud Native Applications
- DevOps Tools
- Distributed Systems
- Network Services
- Backend Services
เมื่อ Environment พร้อมแล้ว ขั้นตอนถัดไปที่แนะนำคือเรียนรู้ Go Syntax, Package, Struct, Interface, Error Handling, Goroutine, Channel, Context, Testing และการพัฒนา REST API
#แหล่งอ้างอิง
- Go Installation: https://go.dev/doc/install
- Go Downloads: https://go.dev/dl/
- Go Modules: https://go.dev/doc/modules/managing-dependencies
- Go Module Tutorial: https://go.dev/doc/tutorial/create-module
- Go in Visual Studio Code: https://code.visualstudio.com/docs/languages/go
- Go Release History: https://go.dev/doc/devel/release