#การตั้งค่าสภาพแวดล้อมสำหรับเขียนโปรแกรม 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 Server
  • dlv — Debugger
  • goimports — จัดรูปแบบและจัดการ import
  • staticcheck — 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 สามารถ

  1. คลิกด้านซ้ายของเลขบรรทัดเพื่อสร้าง Breakpoint
  2. กด F5
  3. เลือก Go Debug Configuration
  4. ตรวจค่าตัวแปรใน Variables
  5. ใช้ 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


#แหล่งอ้างอิง