ปัญหา เมื่อทำการแก้ไข production code หรือ test code แล้ว
ต้องทำการ run ชุดการทดสอบเองเสมอ ซึ่งน่าเบื่อมาก ๆ 
ดังนั้นจึงอยากให้ทำการทดสอบแบบอัตโนมัติ (Continuous Testing)
เมื่อมีการเปลี่ยนแปลง เหมือนกับพวก JavaScript framework ต่าง ๆ

วิธีการแก้ไข

เมื่อไปดู proposal ที่เปิดมาใจภาษา Go พบว่า
เคยมีคนขอ feature นี้แล้วที่ 
Proposal: cmd/go : add “go test” with “-watch” argument for automatic reload test
เป็นแนวทางที่น่าสนใจมาก ๆ  ชื่อคนขอคุ้น ๆ นะ !!

แต่ว่าก็ตกไป เนื่องจากเรื่องของความซับซ้อน
และเครื่องมือที่ใช้ในการสร้าง feature นี้เยอะเกินไป
รวมทั้งมีปัญหาเรื่องของ portability บน OS ต่าง ๆ นั่นเอง

ดังนั้นให้ไปใช้เครื่องมือตามแต่ละ OS นะ

ยกตัวอย่างเช่น

  • Linux ใช้ inotifywait
  • Mac ใช้ fswatch

ตัวอย่างการใช้งาน fswatch ดังนี้

ให้ทำการ run file ข้างต้นค้างไว้
จากนั้นทำการแก้ไขไฟล์ต่าง ๆ ที่มีนามสกุล *.go
ได้ผลการทำงานเป็นดังนี้

เพียงเท่านี้ก็ใช้งานได้ละ มีสีด้วยนะ
ขอให้สนุกกับการ coding

ตัวอย่างของ source code อยู่ที่ GitHub::Up1