GoでWebアプリケーション作るフレームワーク
初心者がインスタントにWebアプリケーションを作成するならどのフレームワークがいい?
Webフレームワーク
Webフレームワークを使いたくなる理由は?
使わなくていいの?みんな使ってると思っていた
認証機能とか絶対必要になりそうな機能あるので楽できるんじゃね?
初心者にはフルスタックのほうが助かる
ginが多いんじゃないか?(個人の意見)
一昔前は多かった気がする。最近はecho?
matini→gin→echoの変遷?
echoのほうがginよりちょっといいよという話らしい
echo
ロゴがおしゃれ
ロゴは一回変わっているらしい
ginよりパフォーマンス高いよ
middlewareを差し込める
Node.jsのexpress感
認証系はmiddlewareでやっていく
ところでcontextとは…?
いま処理しているHTTPリクエストがcontext経由で渡されている
ルーティング
ルーティングをグループ化して、特定のグループだけにmiddlewareを差し込めたりする
例: /adminだけ認証するとか
Railsと違ってRESTful前提というわけではない
List Routes
ルーティング定義をJSONに吐き出すことができる
ドキュメント化するとき便利
JSONからルーティング定義したい…
echoやginはHTTPまわりの機能だけを持っていて、ORMは提供していない
ORMを使う理由は?
ライブラリを入れると学習コスト上がる
大きなライブラリには不要な機能もついてきがち
Goでいうとtesify
RubyでいうとActiveRecord
ActiveRecordつらいという声
初学者としてはSQL書くより楽なことも
クエリビルダーはいらないけど、オブジェクトにマッピングする作業はやってほしい
クエリービルダーはいらんかなー?
XORM
XOrmタグ→ggrks
GORM
SQLX
Prisma まだbeta.8 (2020/06/07時点)
dbから schema.prisma (モデルとかDBの設定が入ってる)作って、go generate で schema.prisma からそのDB専用のORMを作ってくれる。DBの制約があるかわりに型セーフ、大抵の開発者にはSQLの知識の必要なし?
alpha版ですが、マイグレーションもやってくれまして、その手法を使えばその部分は、DBファーストではなくDBのスキーマファースト(具体的にはschema.prisma)な開発スタイルを取れる。(現状は、alter系が対応してないので、テーブル名とかカラム名を変更すると一旦DROPされちゃうので将来に期待!って感じです。)
関係ない?
golang で db の migration 管理は皆様どうされているのか気になっています。strozw.icon