Kaigi on Rails 不参加記 Part3

Kaigi on Rails 不参加記とは

Kaigi on Railsには参加してないけど最近Rails周りなんもキャッチアップしてないと焦っている人間による、公開されている資料を見ての適当な感想を書く記事です。 運営の方々、発表者の方々、資料まとめてくださっている@hassanさん、その他皆々様ありがとうございます!!!!!!!
part1
part2

資料ごとの感想

Fintechプロダクトの開発事情とアーキテクチャ解説

  • スマートバンクさん最近よく聞く
    • プロダクトは全く僕がターゲットじゃないので使ったことがありません…
  • 認証とその他を分けてる構成を既にやっててすごい
    • 認証って最初はIdentity as a Service使うのが一番楽そうな気がするけど、どうなんだろう
    • 企業向けに大量にIdを発行するとかじゃなければIDaaS使わなくても良さそうではある
  • 金融サービスって触ったことないけど各社のAPIへの対応とかどうコードで表現してるんですかね?

Railsの型ファイル自動生成における課題と解決

  • みてねは使いたいですが使えません…
  • orthosesってorthosesって読むのか
  • Rubyの型全然触ってないよのな、形式手法が便利なのはわかっているのですが..
  • Rubyの型の自動生成ってどういうロジックなんですかね?
    • Hindley-Milner型の型推論?
    • 構造型?
      • ワードだけ知っているだけでなんもわかってないです
  • 型検証のエラーをわかりやすくしたいってどこの言語でも聞くなあ

事業の試行錯誤を支える コードを捨てやすくして システムをシンプルに保つ設計と工夫

  • いらなくなった時に捨てやすくするために用途ごとにテーブルをつくる
    • 新しめのプロダクト、使いまわしを意識しすぎると良くないがち
    • 判明してきたドメインの構造を反映させられなかったりとか
  • スライド全般的に、最初にビジネスの特徴を捉えてるのがすごい
    • なぜ機能がほしいのか?を人間の感情ではなくロジックで捉えているのがすごい
    • スプリントレビューってデプロイした少量の改善を対象にすることが多くて、わりと近眼的な視点になりがち
    • そもそもこの機能ビジネスに約に立つか?っていう観点でステークホルダーに見てもらうにはどうしたら良いんすかね?
    • 1スプリントで機能全体を作りだせっていう話かもしれん
  • 利用されているか?まで調べるまでがリリース
    • 帰るまでが遠足と言われている

Fat_Modelを解消するためのCQRSアーキテクチャ

  • YOUTRUSTって成功報酬ないんだ
    • 利用料だけで稼いでいるのかな
  • ここらへんformオブジェクトにしたりサービスクラスつくったりで色々流派がある
    • トランザクションや認可の責務をどこに持たせるのかがはっきりしているのが良い
    • 単体テストも書きやすそう
  • メリットは書いてあったので、デメリットを考えてみる
    • モデルに閉じすに色々なオブジェクトがビジネスの知識をもつので変更する際は大変そう
      • ファットなCommandが生み出されそうな気がするけどどうなんだろ
      • ファットなオブジェクトはそもそも現実世界がファットなんだよな

返金処理を通して学ぶ、 カード決済電文の沼バトル

  • カードバトル!?(空目)
  • 辛そうなワードたっぷりあってウケる
    • クレカ側のAPIを変えられない以上自分たちで対応するしかなさそうですね…
    • こういう外部APIのレスポンスのパターンを自動でリストしてくれるなにかほしいですよね
      • まじでほしい

E2E testing on Rails 2023

  • system test周りわからなくなったら参照したい神資料だぁ…
    • 特にcapybaraがwebサーバー立ててるところめっちゃ参考になる
  • https://github.com/YusukeIwaki/playwright-ruby-client
    • 一度システムテスト短縮化の為に仕事のレポジトリに突っ込んでみたことがある
      • そこまで早くならなかった
      • 僕の使い方が悪い可能性が大いにある

32個のPRでリリースした依存度の高いコアなモデルの安全な弄り方

  • MySQLは色んなことがオンランDDLでできてすごいなぁ
    • 今社ではPostgresを使っていて、デフォルト値があるカラムを追加する時は、まずカラムをつくってからデフォルト値をつけるという手順を踏んでいる。
    • Postgresも11からnot null制約をACCESS EXCLUSIVEロック取らずに実行できるようになっているらしい
    • 以前社でPostgresはカラム名の並び替えできないから、timestamp系は最初に一番上に定義しちゃうのが好みみたいなレビューを見てなるほどと思った記憶があります。
    • PostgresもMySQLもなんもわかってないなぁ
  • カラム名の変更とかカラムの削除は色々問題がある〜といううっすらした記憶しかないのでいつもググっている
    • この資料の移行方法もめっちゃ参考になる
    • これ最初に無期限ポイントをnot nullでつくらない理由なんでなんだろう
    • MySQLでデフォルト値つきのカラム追加はオンラインDDLにならないから?メタデータロックとか考えたくないから?
  • 決断を先延ばしにできる技術
    • これすごい大事だと思う
  • スライドしかみてないけどPR8個じゃない?

テーブル分割で実現するdeviseの責務の分離と柔軟な削除機構

  • 認証情報とアプリケーションの情報は分割したいところ
    • まったく違う関心事になる
    • どこかでUserのJSON全部renderしてやばいことになったやつありましたよね

Multiple Databasesを用いて2つのRailsプロジェクトを統合する

  • うおお統合作業だ
  • transaction周りってconnects_to設定したらいい感じにならないのですか?
    • よくわからなかったので発表の動画をみました。もう無料で公開されててすごい。
    • 理由は君の目で確かめてみてくれ
  • ノベルとコミックの共通点と差異面白そう
  • Railsの機能リプレイスにいま興味があるパーソンです
    • 誰か知見ある人助けて

まとめ

今回も勉強になりました!各社の課題が覗き見できて楽しいイベントですな。 最後になるであろうPart4もやるぞo(^-^)o