【Go】GoはORMを使わないのが普通
4月になって新職場で仕事を開始して、Goでゴリゴリとコードを書いています。
その中で発見したことが一つあります。
GoはSQL直接書く。
以前、初めてGoで開発していた時には「さすがに標準のdatabaseパッケージでSQL直書きはな・・・」と思い、普通にgormを使っていました。
いわゆるWebフレームワーク標準のORMと同じような書き方書けるので使ったのですが、どうやらこれは主流じゃなかったようで・・・
SQLをソースに直書きするスタイルが普通らしいです。
gormは遅い
処理をパースする必要があるせいかgormは遅いみたい
です。
特に複雑なSQL書くとヤヴァイみたいですね。内部結合でも遅くなりやすいらしいです。
goの速度がスポイルされてしまうので、使われないのはその辺りの理由です。勿論実際のプロダクトで使っているところもありますが、何らかの制限をして使ったりしているようです。
database/sqlは使いにくい
ただ標準パッケージのdatabase/sqlは、カラム毎にScanしたりしないといけないので、イマイチ使い勝手がよくないです。
なのでsqlxのような薄いラッパーを使って効率よく開発しています。
GitHub - jmoiron/sqlx: general purpose extensions to golang's database/sql
ORMどっぷりだったので面倒ですが、これも慣れるまで頑張るしかないかなと思います。
これを期にSQLの苦手意識を少しでも克服しよう・・・