sqlc vs gorm
by Aaron • 10/26/2024, 9:51:42 AM

此系列為開發 Inkwave 這個 side project 的日記 (內心的 murmur)
兩者的 code 在各自的官網都有了, 就不放了
-
SQLC: 可以將 SQL 轉換成 golang code, 這樣我只需要專注於寫 SQL 就好, 並且支援讀 migration file
- 效能快
- 學習曲線較緩, 容易開發
- SQL 的錯誤在生成 code 的時候就能發現, 比較少 sql syntax error
-
Gorm: 是一個 ORM, 透過呼叫定義好的 interface 來執行對應的 SQL
- 會犧牲掉一點點效能 (但這大多數時候應該是個假議題?)
- 學習曲線較陡, 會需要一點時間熟悉語法, 感覺如果是複雜的 sql 有點難翻譯成 gorm code (這點在似乎現在可以靠 ai 解決 8,9 成)
- 有提供更多的功能, 例如讀寫分離 (但這個比較希望是用多一層 proxy sql 來處理)
總結
對我而言, 需要的功能兩個都可以做到, 但跟資料庫互動似乎不是我目前應該專注的問題, 使用 sqlc 應該是比較好的選擇(能夠較快實作內容), 再者應該也是會在抽一層 repository 來使用,之後要更換其實也蠻容易