Section 1: Lab: เริ่มต้น Go 1.27 และเครื่องมือ
- จุดเด่นของ Go สำหรับงาน Backend และจุดที่ต่างจาก Node.js, Python และ Java
- ติดตั้ง Go 1.27 และตั้งค่า VS Code กับ Go Extension และ gopls
- Go Module, go.mod และการจัดการ Dependency ด้วย go get
- go fmt, go vet และ golangci-lint สำหรับรักษาคุณภาพโค้ด
- Lab: สร้างโปรเจกต์แรกและรันโปรแกรมแบบ Command Line
Section 2: ไวยากรณ์ Go ที่ใช้ทุกวัน
- ตัวแปร ชนิดข้อมูล ค่าคงที่ และ Zero Value
- Slice, Map และ for range รวมถึง range over int และ Iterator
- Function แบบคืนค่าหลายตัว, Closure และ defer
- จัดการ Error แบบ Go ด้วย errors.Is, errors.As และการห่อ Error ด้วย %w
- Lab: เขียนโปรแกรมประมวลผลข้อมูลจากไฟล์ JSON
Section 3: Struct, Method, Interface และ Generics
- Struct และ Method แทน Class พร้อม Pointer Receiver
- Embedding เพื่อใช้โค้ดซ้ำแทนการสืบทอด
- Interface แบบ Implicit และหลักการออกแบบ Interface ขนาดเล็ก
- Generics สำหรับฟังก์ชันและชนิดข้อมูลที่ใช้ซ้ำได้
- Lab: ออกแบบ Model และ Interface ของระบบจัดการสินค้า
Section 4: Lab: Concurrency ด้วย Goroutine, Channel และ context
- Goroutine และ Channel พร้อม select สำหรับรอหลายช่องทาง
- sync.WaitGroup, Mutex และ errgroup สำหรับประสานงาน
- ยกเลิกงานและกำหนด Timeout ด้วย context
- ตรวจ Race Condition ด้วย go test -race
- Lab: เรียก API ภายนอกหลายตัวพร้อมกันแล้วรวมผลลัพธ์