ตอนนี้ 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 ครับ

Tags:,