第83回 Ruby関西 勉強会 に参加しました。

会場

大阪駅前第 2 ビル 6 階で、なぜか上がるエレベーターは混雑していました。

Language Update 2018 - Ruby

Learn Languages 2018 in ODC での発表資料そのままで発表しました。

rabbit -S 1920,1080 language-update-2018-ruby.md で発表したら、 下がちょっと切れていました。

GraphQL を Ruby で気軽に試す

  • 自己紹介
  • GraphQL とは?
  • API のための問い合わせ言語
  • REST で何が問題だったか
    • mobile 対応
    • バージョン管理問題
    • ドキュメントが古い
    • エラーメッセージがわかりにくい (例: { "status": 400, "message": "Bad Request" })
  • GraphQL で自動解決
    • 単一エンドポイント
    • 適切で具体的なエラーメッセージ
    • ドキュメントの更新
  • GraphQL の例
  • Request に記述した 欲しいデータだけ が同じフォーマットでかえってくる
  • バックエンドも余計なデータをデータベースなどに取りに行かなくてすむ
  • IntrospectionQuery で最新のドキュメントが自動生成できる
  • Type で validation もできる
  • エラーメッセージもフィールドの型が違うとかないとか適切なものが自動生成される
  • graphql-ruby
    • Ruby っぽくない DSL だった
    • 1.8 から Ruby っぽくかけるようになった (class でかけるなど)
  • 問題点
    • 今までの REST API クライアント
    • REST API の終了時期
    • 学習コスト
    • 周辺ライブラリ
  • 周辺ライブラリなどは、使っている人が増えていっているので、時間が解決しそう

  • 質疑応答
    • graphql-ruby は開発が活発なようだが大丈夫か?
      • graphql-ruby は 1.8 以上がおすすめ
      • 安定度も普通に使っている分には問題ない
    • GraphQL 自体、更新系は使いやすい?
      • mutation というのがある
      • エラーメッセージ自動生成も同じ仕組みで動いているので、そんなに差はない
    • 認可?
      • そのあたりはまだ触っていない
      • GraphQL Pro だけで提供しているものもある
      • ヘッダーだけでなんとかなる部分もある
    • Pro じゃない方にも ready (?) が入ったので、そこで pundit が使えるらしい
    • 開発者が github に入ったっぽいので Pro が必要なものが減っても大丈夫そう
    • パフォーマンス? ネストしたリソースで N+1 とか
      • ネストなどはサーバー側で制限できる
      • サーバー側でのロジックによっては発生するので、普通の rails アプリでの対応と同じような対応は必要
    • GraphQL と REST の使い分けの境目は?
      • GraphQL を使った方がいいとき : 複数プラットフォーム
      • 提供するリソースが増えてくると REST と違って namespace がないので、エンドポイントを分ける方が良いかも
      • 現在はほとんどの状況は REST の方が良さそう
      • 将来は GraphQL に変わっていって欲しい
      • 今のところは GraphQL のみだとユーザーが困りそうで、 GraphQL も提供するというのはあり

休憩

RegionalRubyKaigi レポート (69) 大阪 Ruby 会議 01

Material Components

ESP32 で L チカ

  • Ruby で書ける
  • コンパイルに 5 分ぐらいかかるらしい
  • なにわ.rb (仮)

A PRACTICAL TYPE SYSTEM FOR RUBY AT STRIPE

休憩

Ruby初級者向けレッスン 67回 〜ArrayとHash〜

クロージング

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published