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