เพิ่งเห็นว่าหนังสือ Learning Go 2nd edition ปล่อยออกมาแล้ว
โดยจะมีทั้งหมด 16 บท มีการเปลี่ยนแปลงจาก first edition พอสมควร
เรื่องจาก ecosystem ของ Go ก็เปลี่ยนไปเยอะพอสมควร
ทั้งเรื่องของ version
ทั้งเรื่องจากการสร้าง project ที่มาเป็น Go module แล้ว
ทั้งเรื่องของ Go tool ที่เพิ่มและลบออกไป
ทั้งเรื่องของ feature ใหม่ ๆ ที่เพิ่มเข้ามา เช่น generic, loop var, fuzzing และ structured log เป็นต้น
และได้เพิ่มแบบทดสอบในทุก ๆ บทให้อีกด้วย

ในหนังสือเล่มนี้ จะเริ่มจากการสร้าง project
ที่เปลี่ยนมาใช้ Go module แล้ว
รวมทั้ง Go tools ที่ควรต้องรู้และใช้งาน เช่น

  • go build
  • go run
  • go fmt
  • go vet
  • go mod
  • go work
  • go list
  • go get
  • go test
  • staticcheck

รวมทั้งการใช้งาน Makefile และผมขอเพิ่ม Taskfile เข้ามาด้วยจะแจ่มมาก ๆ
อีกเรื่องที่เน้นมาก ๆ คือ stay-up-to-date ด้วยนะ

ส่วนเรื่องของ Generic เพิ่มเข้ามา 1 บทเลย ซึ่งอยู่ในบทที่ 8

การจัดการ error ก็มี multiple error เข้ามาให้แล้ว errors.Join(errs…)

การใช้งาน embed ที่น่าสนใจ

การใช้งาน build tag ในการทดสอบ

ทำการอธิบาย standard library ต่าง ๆ ที่น่าสนใจ เช่น

  • io
  • time
  • encoding/json
  • errors
  • sync
  • context
  • testing
  • reflect
  • unsafe
  • net/http
  • log/slog

Code ตัวอย่างของหนังสืออยู่ที่ GitHub

ใครสนใจในการพัฒนาภาษา Go
เป็นหนังสืออีกเล่มที่แนะนำให้อ่านครับ