Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新卒1年目が社内AIコンペで優勝した

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

 新卒1年目が社内AIコンペで優勝した

Avatar for Fumiya Nishikata

Fumiya Nishikata

May 26, 2026

More Decks by Fumiya Nishikata

Other Decks in Programming

Transcript

  1. 体験の言葉 入力しやすい 届いたことが分かる 後から見返せる 反応が返ってくる → → アプリの構造 モデル・バリデーション 通知・状態

    一覧・検索・権限 リアクション・ジョブ 体験の言葉を、モデル・権限・通知・ジョブへ分解できた 経験が浅くても、Railsの規約に乗れば道筋が見える 9
  2. 表側の 流れ 投稿作成 レターを保存する → 投稿完了 画面はすぐ返す ↓ 通知は裏側へ 裏側で

    動く流れ Solid Queue 通知処理をジョブに逃がす → Slack通知 チャンネルにレターを届ける 投稿体験を止めずに、Slack通知だけを後ろで動かす 投稿後にSlackへ知らせたい 11
  3. SendSlackChannelNotificationJob.perform_later(post.id) ↓ perform_later が境界線になる 投稿体験を守る 投稿成功とSlack通知を分離する。外部 APIの遅さや失敗に、ユーザー操作を引っ 張らせない。 Rails標準に乗る 別のキュー基盤を増やさず、Railsアプリ

    の延長として扱える。経験が浅くても判 断しやすい。 非同期化は、技術選定ではなく「体験を壊さないため」の設計だった 1行で、投稿と通知を切り離す 12