たまごがさきかにわとりがさきか
開発に向けての順序を php で考えてみる
私が php で開発する場合、phpMyAdmin という人を怠けさせる便利ツールを使用する。そのため DDL については書くことはほとんどなく SQL 化の際もエクスポートのボタンひとつで済む。フレームワークを使えば migration に向けてのコードも書けるようだが怠惰に取り憑かれた私にとっては二番煎じなのである。
これを Go で考えてみる
Go についてはこのサイトを作った際に触っただけで DB を使って本格的にどうこうという経験がない。そこでググりにググって物事を整理した結果、二通りのケースを想定した。
- Go to DB
- DB to Go
Go to DB
Go to DB については GORM ひとつで対応できる。依存するパッケージを極力減らしパッケージへの習熟度の範囲を極力狭くするスタンスであればこれが理想かと思われる。ただし schema 定義にバリデーションを含めるのでタグが膨大になりがちである。これを回避したい場合は ent. というパッケージがある。ただし結構な習熟度が求められる。
DB to Go
DB to Go は mysqldump や atlas 等で sql を吐き出し sqlc を使って schema を生成することになる。生成のたびにバリデーションのタグを書く羽目になることを考えると結構な難にも思う。