แรกแย้มกับการใช้ฐานข้อมูล SQL แบบนูบๆ

การใช้งาน Database แบบ SQL ที่ Go ใช้งานได้มีหลากหลาย หาอ่านได้จากหน้าลิสต์ไดร์เวอร์ นี้ https://github.com/golang/go/wiki/SQLDrivers โดยพื้นฐานจะใช้งานได้ต้องเริ่มจาก Import แพคเกจ database/sql มาใช้พร้อมกับไดร์เวอร์ก่อน เช่นเปิด sqlite3 “database/sql” _ “github.com/mattn/go-sqlite3″ หากสงสัยว่าทำไมต้องมีไอ้อันเดอร์สกอร์ _ ก่อนเรียกไดร์ฟเวอร์ด้วย คือโปรแกรมเราไม่ได้เรียกใช้มันโดยตรง จึงต้องบอกให้คอมไพลเลอร์ละมันไว้ ไม่ต้องมาด่าว่าเชิญเทพมาแล้วทำไมไม่เรียกใช้งาน เพราะจริงๆแล้วมีแค่ตัวแพคเกจ database/sql เป็นตัวเรียกใช้ เปรียบง่ายๆ ก็ให้นึกภาพว่าเราอัญเชิญ เทพ “sqlite3″ มาประทับร่าง “database/sql” ตัวแพคเกจ “database/sql” มันเป็นแค่ “ร่างทรง” ภาษากี๊กกี้เราเรียกว่า Interface หรือ Abstraction Layer ดังนั้นวันหลังไปกราบคนทรงเจ้าที่ไหน ให้ทักว่าเค้าก็คือ Abstraction Layer ทำหน้าที่เป็น Interface ของเทพที่เรากำลังกราบอยู่ไงละ! ดังนั้นเราทำอะไรกับเทพองค์ไหนก็ได้ผ่านคนทรง จะกอด จะจูบ จะลูบ จะคลำ […]

Continue reading →

Go ไม่มี class และ object แต่ทำไมถึงมี Method และ Interface

The obvious example is the way interfaces give us the composition of components. It doesn’t matter what that thing is, if it implements method M I can just drop it in here. – Rob Pike ( Less is exponentially more )   Go เป็น procedure language ที่เราสร้าง Type ใหม่เองได้ และ สร้าง method ให้เจาะจงแต่ละ Type ได้ แบบที่เคยเขียนไว้คราวก่อน […]

Continue reading →