จากบทความเรื่อง Introduction to Go Modules in Go v1.11, Goodbye GOPATH!
ไม่ต้องทำการกำหนด environment ชื่อ GOPATH แล้ว
รวมทั้งสามารถพัฒนาระบบนอก GOPATH ได้โดยไม่ต้องกำหนดค่าอะไรเพิ่มเติม
ซึ่งเป็นปรับปรุงเรื่องการจัดการ dependency ให้ดีและง่ายขึ้นนั่นเอง
ดังนั้นจึงสรุปการใช้งานไว้นิดหน่อย กันลืม

ขั้นตอนที่ 1 ต้องมั่นใจว่า เราไม่ได้กำหนด GOPATH เอง

ดังนั้น unset GOPATH ก่อนเลย

$unset GOPATH

ขั้นตอนที่ 2 ทำการสร้าง project ของเรา หรือสร้าง module นั่นเอง

$go mod init hello

จะได้ไฟล์ชื่อว่า go.mod ขึ้นมา
เป็นไฟล์ configuration หลักของ module เรานั่นเอง

ขั้นตอนที่ 3 ทำการเพิ่ม dependency ที่จะใช้งานใน module เราเข้าไป

ยกตัวอย่างเช่น Gin เข้ามายัง module

แต่สิ่งที่สำคัญมาก ๆ ของการใช้งาน dependency ต่าง ๆ คือ
เรื่องของ version ซึ่งต้องอยู่ในรูปแบบของ Semantic Versioning ด้วย
แน่นอนว่า dependency หลาย ๆ ตัวสำหรับภาษา Go ยังไม่เปลี่ยนทั้งหมด
แต่คาดว่าในอนาคตอันใกล้น่าจะปรับแน่นอน
ดังนั้นไม่ต้องกลัว
ส่วนเราถ้าต้องการสร้าง dependency ต่าง ๆ ขึ้นมาก็ใช้ Go module ซะ

ขั้นตอนที่ 4 ก็ build project ซะ

แต่อย่าลืมสร้างไฟล์หลักของ module เราก่อนละ

ทำการ build ด้วยคำสั่ง

$go build

จะทำการ download dependency มาให้แบบอัตโนมัติ
ซึ่งจะเก็บ depedency ของ Gin ไว้ที่ GOPATH ที่เป็น default ของภาษา go ในแต่ละ platform
ซึ่งสามารถดูด้วยคำสั่ง go env
โดยเครื่องผลเป็น Mac OS จะอยู่ที่ GOPATH/pkg/mod/cache/ นั่นเอง

และจะได้ binary ที่เราต้องการไปใช้งานต่อไปแล้ว

เท่านี้ก็ใช้งาน Go module แบบง่าย ๆ ได้แล้ว
มาเขียน code กันเถอะ

Reference Websites
https://www.melvinvivas.com/go-version-1-11-modules/
https://github.com/golang/go/wiki/Modules

Tags: