ตั้งค่า Go
ตั้งค่า environment Go ของคุณ
หัวข้อที่มีชื่อว่า “ตั้งค่า environment Go ของคุณ”การตั้งค่า TypeScript ต้องใช้ Node.js, npm (หรือ package manager อื่น) และ tsc ส่วน Go มี toolchain เดียวแบบรวมศูนย์ — ติดตั้ง Go ครั้งเดียวได้ครบทุกอย่าง: compiler, formatter, test runner และ module manager
ติดตั้ง Go
หัวข้อที่มีชื่อว่า “ติดตั้ง Go”ดาวน์โหลด official installer จาก go.dev/dl หลังติดตั้ง ตรวจสอบด้วย:
go version# go version go1.22.0 darwin/arm64โดยค่าเริ่มต้น Go จะติดตั้งที่ /usr/local/go ส่วน GOPATH (workspace directory, ค่าเริ่มต้นคือ ~/go) คือที่เก็บ module ที่ดาวน์โหลดมาและ binary ที่ติดตั้งไว้ ในทางปฏิบัติคุณแทบไม่ต้องไปยุ่งกับ GOPATH เลย — go mod จัดการให้หมด
Go CLI vs Node/npm CLI
หัวข้อที่มีชื่อว่า “Go CLI vs Node/npm CLI”นักพัฒนา Node.js ทุกคนรู้จัก node, npm และ tsc ส่วน Go รวมทุกอย่างนี้ไว้ใน go command เดียว
# TypeScript / Node.js toolchainnode index.js # รัน filenpx ts-node src/index.ts # รัน TypeScript โดยตรงtsc # คอมไพล์ TypeScriptnpm install # ติดตั้ง dependencynpm run build # รัน build scriptnpx <tool> # รัน package binary# Go toolchain (ทั้งหมดใน command เดียว)go run main.go # คอมไพล์ + รันใน step เดียวgo run . # รัน package ปัจจุบันgo build -o myapp . # คอมไพล์เป็น binarygo mod init github.com/you/myapp # init module ใหม่go get github.com/gin-gonic/gin # เพิ่ม dependencygo install tool@latest # ติดตั้ง CLI tool แบบ globalgo run vs go build
หัวข้อที่มีชื่อว่า “go run vs go build”go run คือ development loop ของคุณ — คอมไพล์แล้วรันในขั้นตอนเดียว เหมือน ts-node หรือ npx tsx ที่ใช้ตอน develop ส่วน go build สร้าง binary แบบ standalone ที่เอาไป deploy ได้ Go ไม่มี “watch mode” ในตัว แต่เครื่องมืออย่าง air ช่วยทำ live reload ได้
# TypeScript development loopnpx ts-node src/index.ts # คอมไพล์ + รัน (dev)tsc && node dist/index.js # คอมไพล์แล้วรัน (CI/prod)npx tsx watch src/index.ts # watch mode# Go development loopgo run . # คอมไพล์ + รัน (dev)go build -o ./bin/app . && ./bin/app # คอมไพล์แล้วรัน# air # watch mode (third-party)go mod init — เทียบเท่ากับ npm init
หัวข้อที่มีชื่อว่า “go mod init — เทียบเท่ากับ npm init”เมื่อเริ่มโปรเจกต์ Go ใหม่ ให้ initialize module ด้วย go mod init คำสั่งนี้จะสร้างไฟล์ go.mod — เทียบเท่ากับ package.json ของ Go
# TypeScriptnpm init -y# สร้าง package.json พร้อม name, version, deps
# แล้วเพิ่ม dependency:npm install express# อัพเดท package.json + สร้าง package-lock.json# Gogo mod init github.com/yourname/myapp# สร้าง go.mod
# แล้วเพิ่ม dependency:go get github.com/gin-gonic/gin# อัพเดท go.mod + สร้าง go.sum (เหมือน package-lock.json)go install — CLI tool แบบ global
หัวข้อที่มีชื่อว่า “go install — CLI tool แบบ global”npm install -g ใช้ติดตั้ง CLI tool แบบ global ส่วน go install ก็ทำแบบเดียวกัน — คอมไพล์ module แล้ววาง binary ไว้ใน $GOPATH/bin (อย่าลืมเพิ่ม path นี้ใน PATH ของคุณ)
# TypeScript: CLI tools แบบ globalnpm install -g typescriptnpm install -g prettiernpx create-react-app myapp# Go: CLI tools แบบ globalgo install golang.org/x/tools/gopls@latest # LSP servergo install github.com/air-verse/air@latest # live reloadgo install github.com/golangci/golangci-lint/cmd/golangci-lint@latestPlayground
หัวข้อที่มีชื่อว่า “Playground”บทนี้เป็นบท setup — playground จึงไม่ค่อยมีบทบาทตรงนี้ (ไม่มีอะไรต้องติดตั้งใน browser) แต่ในบทถัดไป (Hello World) คุณจะได้ใช้ playground รันโปรแกรม Go แรกแบบเต็มๆ