สวัสดีครับ ในบทความนี้ก็เป็น EP.2 แล้วนะครับ โดยเนื้อหาจะเป็นเรื่องเกี่ยวกับ Go module ว่าคืออะไร ใช้ทําอะไร และมีประโยชน์อย่างไร
สําหรับท่านใดที่ยังไม่ได้อ่าน EP.1 ท่านสามารถกลับไปอ่านก่อนได้นะครับที่นี่ Go EP.1 เริ่มต้นเรียนรู้ภาษา Go
โดยปกติแล้วในการเขียนโปรแกรมขึ้นมาสักตัวนึง จําเป็นจะต้อง Import Dependency เข้ามาใช้งาน ในหลายๆภาษา ตัวอย่างเช่น ภาษา JavaScript จะมีตัวจัดการ Dependency คือ node_module สําหรับในภาษา Go ก็เช่นกัน มี Go module เป็นตัวจัดการ Dependency ที่ Import เข้ามาใช้ใน Project โดย Go module เริ่มนํามาใช้ตั้งแต่ version 1.11 เป็นต้นมา
การใช้งาน Go module นั้นสามารถ Initial ได้โดยใช้คำสั่งนี้
$ go mod init github.com/mrthiti/go-module-example
*github.com/mrthiti/go-module-example คือชื่อของ module ที่ต้องการ ซึ่งเป็นชื่ออะไรก็ได้ครับ
เมื่อใช้คําสั่งนี้จะมีไฟล์ go.mod ถูกสร้างขึ้นมาโดยภายใน file ก็จะมีรายละเอียดของ module ประมาณนี้
module github.com/mrthiti/go-module-example
go 1.17
ต่อมา เราลองเขียนโปรแกรมง่ายๆขึ้นมาสักตัวนึงครับ โดยสร้างไฟล์ main.go ขึ้นมา แล้วเขียน Code ดังนี้
package main
import "fmt"
func main() {
fmt.Println("Hello Go")
}
แล้วลองรันดูครับก็จะได้ Hello Go แสดงผลออกมา ถึงตอนนี้เราก็ได้ Project ง่ายๆ ขึ้นมาแล้วครับ
ในขั้นตอนต่อไปเราจะลองเพิ่ม Dependency เข้ามาใช้ใน Project นี้กันครับ โดยตัวอย่าง่ายๆ เราจะเพิ่ม rsc.io/quote เข้ามาใช้งาน โดยสามารถใช้คําสั่งนี้ได้เลยครับ
$ go get rsc.io/quote
เมื่อใช้คําสั่งนี้ rsc.io/quote จะถูกโหลดลงมาบนเครื่องของเราทันที และสามารถ Import เข้าไปใช้งานได้เลยครับ ตามนี้
package main
import (
"fmt"
"rsc.io/quote"
)
func main() {
fmt.Println(quote.Hello())
}
เมื่อรันโปรแกรมจะได้ผลลัพธ์ “Hello, world.” ขึ้นมาแสดงว่าเราสามารถเรียกใช้งาน quote จาก rsc.io/quote ได้เรียบร้อย
ลองกลับมาดูที่ไฟล์ go.mod จะพบกับรายละเอียดของ Dependency ตามที่เราใช้คําสั่ง go get … เข้ามาใน project เราครับ
module github.com/mrthiti/go-module-example
go 1.17
require (
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c // indirect
rsc.io/quote v1.5.2 // indirect
rsc.io/sampler v1.3.0 // indirect
)
และเราจะพบไฟล์ go.sum ถูกสร้างขึ้นมา ประโยชน์ของไฟล์นี้ก็คือ เป็นไฟล์ที่เก็บ checksum เพื่อให้แน่ใจว่าเราโหลด Dependency ต่างๆมาถูกตัว หรือถูก version
ก็ประมาณนี้ครับสําหรับการใช้งาน Go module หวังว่าจะทําให้ทุกท่านเข้าใจมากขึ้นครับ
สําหรับ EP. ต่อไปจะเป็นเรื่อง Go EP.3 Go packages คืออะไร เข้าไปอ่านต่อได้เลยครับ
ขอให้สนุกกับการเขียนโปรแกรมนะครับ ขอบคุณครับ 😀
Raspberry Pi Zero W เป็นรุ่นที่สอง พัฒนามาจากจาก Raspberry Pi Zero รุ่นนี้ราคาจะอยู่ที่ประมาณ 10$ หรือ ประมาณ 350 บาท สําหรับสิ่งที่เพิ่มเติมเข้ามาในรุ่นมีดังนี้
Dialogflow จากเดิมใช้ชื่อว่า Api.ai ถูกพัฒนาขึ้นโดย Speaktoit และต่อมาภายหลังถูก Google ซื้อ และนำไปพัฒนาต่อยอดในปี 2016 และพึ่งเปลี่ยนชื่อมาเป็น Dialogflow เมื่อไม่นานมานี้
ในบทความที่แล้ว (Docker Swarm คืออะไร) ผมได้อธิบายไปแล้วว่า Docker Swarm คืออะไร และการใช้งานแบบคร่าวๆ สําหรับในบทความนี้ผมจะมาทดลองให้ดูว่าเมื่อนํา Docker Swarm มาใช้งานแล้วจะเป็นอย่างไรบ้าง ก่อนอื่นมาดูกันก่อนว่าคําสั่งพื้นฐานของ Docker Swarm ที่จะต้องใช้มีอะไรบ้าง