9.9 サードパーティーのライブラリを使ったあれこれ
本節ではデータベースに関するサードパーティーのライブラリについて、周辺の話題を紹介します。ライブラリ自体のAPIの使い方は割愛します。「9.1 データベースの基本的な利用法 」でも説明した通り、便利なORMやサードパーティーのライブラリを使っても最終的には database/sql パッケージに行き付きます。より便利に開発できるように database/sql パッケージをラップしたさまざまなライブラリが開発されています。
9.9.1 サードパーティーライブラリの分類
サードパーティーのライブラリと一口にいっても、大きく2種類に分けられます。1つがサードパーティーのAPIで動的にSQLを組み立てる方法、代表的なライブラリには Gorm があります。もう1つがデータベースのスキーマやクエリー自体をベースにして、静的なクエリーを発行するコードのコードを生成する方法、代表的なライブラリとして kyleconroy/sqlc があります。この2つの中間として jmoiron/sqlx や volatiletech/sqlboiler などのライブラリがあります。

GitHubのstarの数やORMの知名度としては Gorm が有名ですが、筆者の周りのプロジェクトで Gorm を使って開発していた人たちからは Gorm の挙動に悩まされている声をよく聞きます。
9.9.2 スキーマドリブンでアプリケーションを開発
アプリケーションを設計するときに、アプリケーションを構成するテーブルにどのようなものがあるか、またテーブルのリレーションがどのようなものかはとても重要です。ER図はアプリケーション設計の重要な要素の1つですが、整頓されたER図を見れば、ある程度どのようなシステムかがわかります。アプリケーションが拡張されていくにつれ、データベースのスキーマも進化していきます。テーブルやスキーマが変わったときに、Goの実装と乖離がないように運用する必要があります。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access