前提
GoでAPIを構築する際、ORMを使用せず生のSQLを書くとそれをStructにマッピングする必要があります。
sqlx (https://github.com/launchbadge/sqlx) のようなライブラリを使うことで、マッピングを簡易的に行うことも可能ですが、
One-to-ManyやMany-to-Manyとなると対応しておらず、クエリを複数回叩くか、取得したデータをループで回して手動でStructに入れていかなければなりません。
はじめはそんなわけがないと思い、いろいろ解決策を探したのですが例えばここ(https://stackoverflow.com/questions/54601529/efficiently-mapping-one-to-many-many-to-many-database-to-struct-in-golang)
でも言及されてるように、泥臭い解決方しかないようです。
聞きたいこと
そこでお聞きしたいのは、どうやって解決するか?ということではなく、
本当にこんなことをみんなやってるのか?という素朴な疑問です。
ORMの話になったとき、巷ではよく「ORMを使うのはよくない」とか「本来ORMは必要ない」というような情報を目にします。
中でもGoは言語思想的にもしくは言語の特徴的にORMを使わない方が良いという風潮が強いように感じます。
でもORMを使わないことがこんなに面倒ならあまりに割に合ってない気がしてしまいます。
リンク先の例は非常にシンプルなものですが、実際の現場ではもっと複数のテーブルを組み合わせる必要があったり、もっと深くネストすることもありますよね、そう考えるととてもORM無しでやれるとは思えません。
世の中のバックエンドエンジニア方々、ORMなんて無くていいんだという強者な人たちは本当にこんなことをしているのでしょうか?
それとも私が知らないだけでもっと優れた解決法があるのでしょうか?
個人ではフルスタックで開発していますが、ORMを使用した経験(Node.js + prisma等)しかありません。
会社で働く際はフロントエンド中心でバックエンドを触る機会はあまりなく、あったとしてもORMを使用したプロジェクトにしか関わったことがないのでこちらで質問させていただきました。
先輩方のお話を聞かせていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/29 00:38
2022/07/29 13:12