ใน project ที่ทำอยู่นั้น มีการใช้งาน database ตลอด
พบว่าต้องเขียนชุดคำสั่ง sql และ เขียน code ซ้ำ ๆ เยอะ
จึงเกิดความขี้เกียจ ก็เลยหาแนวทางแก้ไขหน่อย
จึงพบแนวทางที่น่าสนใจ และ นำมาใช้งานดังนี้
สิ่งที่ใช้งานประกอบไปด้วย
- Taskfile สำหรับเขียน step การทำงาน ซึ่งดูง่ายกว่า Makefile มาก
- DBML (Database Markup Language) สำหรับการออกแบบ table ต่าง ๆ และ generate มาเป็นคำสั่ง sql ได้เลย ง่ายมาก ๆ
- sqlc สำหรับการสร้าง code เป็นภาษา Go จากคำสั่ง sql
มาดูการใช้งานกัน
ขั้นตอนการทำงานเป็นดังรูป
โดยใน Taskfile จะเขียนดังนี้
[gist id="b397c5a052a9273aa485019f588d16f0" file="Taskfile.yml"]ทำการ run ตามนี้
[gist id="b397c5a052a9273aa485019f588d16f0" file="1.txt"]ตัวอย่างของ code ที่ generate ได้เป็นดังนี้
[gist id="b397c5a052a9273aa485019f588d16f0" file="demo.go"]เพียงเท่านี้ก็ได้ process การทำงานที่ automate มากขึ้น
ช่วยลดภาระงานไปได้เยอะเลย
เพียงแค่ออกแบบ table ใน DBML เท่านั้นเอง
สามารถดูตัวอย่าง code เพิ่มเติมได้ที่ GitHub::Up1