ว่าง ๆ เขียนโปรแกรมด้วยภาษา Go
อยากให้โปรแกรมที่เขียนทำการ reload ทันที
หลังจากที่ทำการเปลี่ยนแปลง code
นั่นคือทำการ build และ run ใหม่นั่นเอง
มาลองหาวิธีกันดู
ปกติพัฒนาฝั่ง Frontend ทั้ง React/Angular/Vue นั้นมีให้แบบชิว ๆ
แต่ในฝั่ง backend ไม่ค่อยมีเท่าไร
ปกติจะใช้ watch คอยดูว่ามีอะไรเปลี่ยนแปลง
จากนั้นจึงทำการ build และ run ใหม่
มาลองดูสิว่า สำหรับภาษา Go มีอะไรให้ใช้บ้าง ?
เมื่อลองไปค้นหาดูพบว่า มีเพียบเลย ทั้งทำเอง
ทั้งใช้ library ยกตัวอย่างเช่น
มาลองใช้ Air เล่น ๆ กันดู
เริ่มต้นด้วยการติดตั้ง มีทั้ง command line ให้ใช้ และ Docker Image
มาใช้แบบ command line ก็แล้วกัน
การติดตั้งสำหรับ MacOS
[gist id="44a0e5eaf8346e4e7dfb00c7973e9186" file="2.txt"]ทำการ setup project และใช้ Air ดังนี้
ถ้าต้องการแก้ไข configuration ของ Air
ทำการสร้างไฟล์ .air.conf ขึ้นมา
จากนั้นก็ไป copy มาจากไฟล์ .air.conf.example
แล้วทำการแก้ไขตามที่ต้องการ
ยกตัวอย่างเช่น
ผมทำการย้าย main.go ไปไว้ใน folder cmd ดังนี้
เมื่อทุกอย่างพร้อมก็ run Air เลย
ถ้าแก้ไขไฟล์ใด ๆ จะทำการ reload ใหม่
นั่นคือการ build และ run นั่นเอง ได้ผลดังนี้
เพียงเท่านี้ก็สามารถมี Live reload ของระบบงานที่พัฒนาด้วยภาษา Go แล้ว
ง่าย ๆ มาก
ตัวอย่างของ project ที่ลองใช้อยู่ที่ GitHub:Up1