สรุปการเปลี่ยนแปลงของ Module ใน Go 1.16

Go 1.16 ออกมาแล้ว ขอสรุปสรุปการเปลี่ยนแปลงที่เกียวข้องกับ Module ดังนี้:

  1. Module Mode จะถูกเปิดเป็นค่า Default
    โดยเราสามารถปิดมันได้ ถ้ายังมี Project ที่ยังไม่ได้ใช้ Module (ยังใช้ GOPATH Mode อยู่) ด้วยคำสั่ง go env -w GO111MODULE=auto
    แต่… ตั้งแต่ Go 1.17 เป็นต้นไปจะไม่ Support GOPATH Mode  อีกแล้ว แปลว่าเราควร Migrate ไปใช้ Module Mode ได้แล้ว
  2. go.mod กับ go.sum จะไม่ถูกอัพเดทโดยอัตโนมัติแล้ว
    เช่น เวลาเราใช้คำสั่ง go run หรือ go build แล้วมี Module ที่ใช้แต่ไม่ได้ Require ไว้ มันจะไม่ถูกอัพเดทใน go.mod ให้โดยอัตโนมัติ แสดงว่าเราจะต้องแก้ไขไฟล์ go.mod เองหรือไม่ก็ต้องใช้คำสั่ง go get เอง
  3. go install สามารถระบุ Version ได้แล้ว
    เช่น go install golang.org/x/tools/gopls@v0.6.5
  4. เราสามารถถอน Module Version ที่เราไม่ต้องการได้ รายละเอียด
  5. เราสามารถใช้ GOVCS เพื่อกำหนดว่า Moduule ไหนจะถูกโหลดจาก VCS อะไร เช่น
    เช่น GOVCS=github.com:git,evil.com:off,*:git|hg

Leave a Reply

Your email address will not be published. Required fields are marked *