LoginSignup
7
3

はじめに

Kaigi on Rails 2023に、オフライン参加しました。

全ての発表を見ることはできませんでしたが、それでも多くの学びがありました。
その学びをここにまとめます。

学びは、かなり荒めに書いています。
興味ある学びについては、今後追記するかもしれません。

学び

ジョブ実行中のコンテナ削除を遅延できる

hako-consoleで、アプリで使っているAWSサービスを把握しやすくなりそう

Delegated typesを使えば、委譲(composition)を実現できる

Fiberで非同期処理を実現できるが、リソース管理をプログラマーがしないといけないので難易度高め

Exceptional Rubyという本は、面白そう

例外は、ある事実に対して何かする必要がある時に発生させる

例外に対する処理を、アプリ全体で共通化できる

# 例外を握りつぶす
Rails.error.handle(ActiveRecord::RecordInvalid) do
  do_something
end

# 再度raiseする
Rails.error.record(ActiveRecord::RecordInvalid) do
  do_something
end

エラーページの表示は、Rails標準搭載のRackミドルウェアに任せるとDRY

Rails 7.1から、テスト環境でエラーページがデフォルトで表示される

Safari v14で、Stimulusのtargetを使う場合は工夫が必要

Gemからアプリケーションコードを1度だけ呼ぶ場合、Rails Executorを使う

Gemからアプリケーションコードを長い間呼ぶ可能性がある場合、Rails Reloaderを使う

KPIの良し悪しによるアクションを事前に決めておくと、ステークホルダーが意思決定をしやすい

RSpecでは初めて visit を使った時に、Railsサーバーとブラウザが起動する

Playwrightテストランナーでの並列テストは難しい

[Hotwire] 部品的アプローチでviewを作成すると、他のviewとの依存関係が生まれて開発しづらくなる

オブジェクト・シリアライザーはMessagePackを使おう

byrootが言ってたけど、色々面倒なのでMessagePack or JSONを使ったほうがいい。

低レイヤーを恐れる必要はない

byrootの発言から

準決定的な振る舞いをするものには、依存してはいけない

byrootの発言から

終わりに

多くの学びがある2日間でした。
「学びが多すぎて、咀嚼するのに時間がかかるなぁ」と思って記事執筆を渋っていました。
しかし、そのまま放置しておくと学びを忘れてしまいそうだったので、荒めに文章化しました。

Thanks

下記の記事に発表資料がまとまっています。
https://qiita.com/Hassan/items/9cc836dd5bfb1aaaabac

この記事を執筆するのに、大変助かりました。
ありがとうございます。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3