sqlc
sql を元に DB との接続ロジックを自動生成できる。
ネストした構造体を取り出すには一つ一つのクエリを愚直に発行していってアプリケーション側でjoinする必要がありそう。
その手間を考えるなら、Preload でいい感じに関連を取得できる gorm を使いたいかなと思った。
create 文から table 構造体つくれるのでその点はいいなと思う。 gorm とハイブリッドで使えたらいいのになぁ。
gorm では構造体に tag 埋め込みたいが、自動生成されたものに tag を書き込むと消えてしまうので。。
vault
hashicorp が提供している secret maneger。
vault に登録するデータは vault が暗号化してから連携している storage に書き込むので機密データの管理に向いている。
以上の仕組みのため、storage から有意なデータは取り出せず、vault 経由で必要な認証情報や key を取りに行くことを強制できる。
gojtp
json 検証ライブラリ。
受け取った json の不正なネスト・配列数や、1フィールドが持つ値の長さなどを事前検証できる。
go-zero
RPC フレームワーク。
goctl という api 構文とコード生成ツールが含まれている。これを使うと、 .api ファイルから Go だけでなく、TS, JS, iOS, Kotlin を生成可能。
CNCF の比較を見たところ、開発コミットや star、実績を見ると grpc がいいかなと思う。
api interface 仕様の寿命は長いので、下手に冒険できない。結局一番慣れた json を選びがち。この辺、うまくメリデメ見つけて最適な方法でクライアントとやり取りできるようにしたい。