ตอนนี้ Go 1.11 ได้ออก RC2 มาแล้ว นั่นหมายความว่าตัว final ใกล้เข้ามาทุกที
ดังนั้นมาลองสร้าง module ด้วยภาษา Go กันหน่อย
ซึ่งเป็น feature ใหม่ที่น่าสนใจ
โดยใน blog นี้จะมีเรื่องต่าง ๆ ดังนี้
- การสร้าง module
- การจัดการ version ซึ่งเป็นแบบ Semantic version
- การใช้งาน module
เริ่มกันเลย
1. การสร้าง module
สิ่งแรกที่ต้องเข้าใจคือ
ถ้าสร้าง module อยู่ภายใน $GOPATH นั้นจะปิดโดย default
ดังนั้นง่าย ๆ ก็ไปสร้างอยู่นอก $GOPATH เลยดีกว่า ดังนี้
$mkdir hey $cd hey $~/go/bin/go1.11rc2 mod init github.com/up1/hey
ผลที่ได้คือ จะสร้างไฟล์ go.mod ขึ้นมา ดังนี้
จากนั้นสร้างไฟล์ hey.go สำหรับการทำงานง่าย ๆ
คือ สร้าง function Ha() ขึ้นมา
เมื่อทุกอย่างเรียบร้อยก็ push ขึ้น github ที่ Up1/hey
จากนั้นลองทำการใช้งานผ่าน go get ได้เลย
จะทำการ download จาก branch master ดังนี้
$go get github.com/up1/hey
แต่ใน Go module นั้นต้องกำหนด version ด้วยเสมอ
ซึ่งเป็น version ในรูปแบบ Semantic version
ดังนั้นมาจัดการกันหน่อย
2. การจัดการ version ของ module
ง่าย ๆ ก็คือ การติด tag ใน git นั่นเอง
ยกตัวอย่างเช่น version v0.0.1
$git tag v0.0.1 $git push origin v0.0.1
3. การใช้งาน module
เมื่อทำการสร้างและ publish module เรียบร้อยแล้ว
ก็ถึงเวลาใช้งานกันดังนี้
$mkdir try $cd try $touch main.go
จากนั้นเปิดการใช้งาน module ใน project ตัวอย่าง
$~/go/bin/go1.11rc2 mod init try
ทำการ build
$~/go/bin/go1.11rc2 build go: finding github.com/up1/hey v0.0.1 go: downloading github.com/up1/hey v0.0.1
เมื่อไปดูในไฟล์ go.mod จะเป็นดังนี้
สุดท้ายทำการ run program ตัวอย่าง ได้ดังนี้
$./try Hey Ha ...
วันนี้เราพร้อมกับ Go Module แล้วหรือยัง ?
ขอให้สนุกกับการ coding ครับ