ข้ามไปยังเนื้อหา

ตั้งค่า Go

การตั้งค่า TypeScript ต้องใช้ Node.js, npm (หรือ package manager อื่น) และ tsc ส่วน Go มี toolchain เดียวแบบรวมศูนย์ — ติดตั้ง Go ครั้งเดียวได้ครบทุกอย่าง: compiler, formatter, test runner และ module manager

ดาวน์โหลด official installer จาก go.dev/dl หลังติดตั้ง ตรวจสอบด้วย:

Terminal window
go version
# go version go1.27.1 darwin/arm64

โดยค่าเริ่มต้น Go จะติดตั้งที่ /usr/local/go ส่วน GOPATH (workspace directory, ค่าเริ่มต้นคือ ~/go) คือที่เก็บ module ที่ดาวน์โหลดมาและ binary ที่ติดตั้งไว้ ในทางปฏิบัติคุณแทบไม่ต้องไปยุ่งกับ GOPATH เลย — go mod จัดการให้หมด

นักพัฒนา Node.js ทุกคนรู้จัก node, npm และ tsc ส่วน Go รวมทุกอย่างนี้ไว้ใน go command เดียว

TypeScript
# TypeScript / Node.js toolchain
node index.js # run a file
npx ts-node src/index.ts # run TypeScript directly
tsc # compile TypeScript
npm install # install dependencies
npm run build # run a build script
npx <tool> # run a package binary
Go
# Go toolchain (all one command)
go run main.go # compile + run in one step
go run . # run the current package
go build -o myapp . # compile to a binary
go mod init github.com/you/myapp # init a new module
go get github.com/gin-gonic/gin # add a dependency
go install tool@latest # install a CLI tool globally

go run คือ development loop ของคุณ — คอมไพล์แล้วรันในขั้นตอนเดียว เหมือน ts-node หรือ npx tsx ที่ใช้ตอน develop ส่วน go build สร้าง binary แบบ standalone ที่เอาไป deploy ได้ Go ไม่มี “watch mode” ในตัว แต่เครื่องมืออย่าง air ช่วยทำ live reload ได้

TypeScript
# TypeScript development loop
npx ts-node src/index.ts # compile + run (dev)
tsc && node dist/index.js # compile then run (CI/prod)
npx tsx watch src/index.ts # watch mode
Go
# Go development loop
go run . # compile + run (dev)
go build -o ./bin/app . && ./bin/app # compile then run
# air # watch mode (third-party)

เมื่อเริ่มโปรเจกต์ Go ใหม่ ให้ initialize module ด้วย go mod init คำสั่งนี้จะสร้างไฟล์ go.mod — เทียบเท่ากับ package.json ของ Go

TypeScript
# TypeScript
npm init -y
# creates package.json with name, version, deps
# then add a dependency:
npm install express
# updates package.json + creates package-lock.json
Go
# Go
go mod init github.com/yourname/myapp
# creates go.mod
# then add a dependency:
go get github.com/gin-gonic/gin
# updates go.mod + creates go.sum (like package-lock.json)

npm install -g ใช้ติดตั้ง CLI tool แบบ global ส่วน go install ก็ทำแบบเดียวกัน — คอมไพล์ module แล้ววาง binary ไว้ใน $GOPATH/bin (อย่าลืมเพิ่ม path นี้ใน PATH ของคุณ)

TypeScript
# TypeScript: global CLI tools
npm install -g typescript
npm install -g prettier
npx create-react-app myapp
Go
# Go: global CLI tools
go install golang.org/x/tools/gopls@latest # LSP server
go install github.com/air-verse/air@latest # live reload
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

บทนี้เป็นบท setup — playground จึงไม่ค่อยมีบทบาทตรงนี้ (ไม่มีอะไรต้องติดตั้งใน browser) แต่ในบทถัดไป (Hello World) คุณจะได้ใช้ playground รันโปรแกรม Go แรกแบบเต็มๆ

Go เทียบเท่ากับ `ts-node src/index.ts` คืออะไร?
`go mod init` สร้างไฟล์อะไร?
`go install` วาง compiled binary ไว้ที่ไหน?
go.sum เทียบเท่ากับอะไรใน Node.js ecosystem?