こんにちは。英語塾キャタルの川崎です。
先日開催された「Kaigi on Rails 2026」に、弊社の照屋と安藤が登壇しました!昨年の2025年も数名がCfPを出したのですが、残念ながら採択されず、友人の会社と合同で忘年会を兼ねた発表会を開催したりしていました。今年はRubyKaigi 2026で辻田がLT登壇を果たし、さらにKaigi on Rails 2026では2名が登壇するという実績を解除しました 🎉
自社自賛になりますが、それぞれのトークについて、発表資料には書かれていない舞台裏も交えながら、個人的なイチオシポイントを紹介したいと思います。
Local CI × GitHub Actions ― 長所を活かすハイブリッドCIの実践
発表資料:Local CI × GitHub Actions
Rails 8.1で導入されたLocal CI。まだ企業での実践例はそれほど多くないと思いますが、その導入から運用までを紹介した実践的なトークになっています。
実際にCIの実行時間を約10分から約2分に短縮し、GitHub Actionsの実行回数も約半分にしています。すべてをLocal CIに置き換えるのではなく、GitHub Actionsと役割分担させているのがポイントです。
個人的なイチオシは、33枚目のRails 8.2で導入予定のgroup機能を先行して取り込んでいるところです。既存のRailsバージョンでも使えるようにバックポートしつつ、Rails本体に機能が入った後は不要なコードを残さないよう、バージョンチェックを入れています。
if ActiveSupport.gem_version.release >= Gem::Version.new("8.2")
abort <<~MSG
Rails 8.2+ を検出しました。この backport は不要になりました。
vendor/backports を削除し、bin/ci の require を
`require "active_support/continuous_integration"` に戻してください。
MSG
end
こういう、目の前の改善を進めながら将来のメンテナンスまで考えているところが、個人的に好きな実装です。あ、ちなみに照屋さんは今年9月に執行役員にも就任しました。
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
発表資料:現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
こちらは個人的に感慨深いトークです。というのも、レッスン補助シートのシステム化について、これまで何度も見送り判断をしてきた当事者が私だったからです。
一見すると業務改善のトークのようですが、実際には、最初から正しいモデルを設計できないときに、どうやって現場と一緒に必要な概念を発見していくかという、モデリングの実践方法として他の現場でも参考になる内容になっていると思います。
最初からRailsで実装するのではなく、まずSpreadsheetで小さく始め、実際の業務を通じて概念を整理し、そのうえでRailsの既存モデルに統合していく。トークの中では、カスタマーサポートの経験が活きたという話もありますが、個人的にはRailsの One Person Framework という思想にも通じるところがあると感じています。エンジニアが技術的な分業に閉じず、現場の課題からモデル設計、実装まで一貫して考えられることが、こうした組織横断的な取り組みを後押ししているのではないかと思います。
ちなみに、トークには書かれていませんが、実装面でも議論はいろいろありました。レッスン中に複数人が同じ情報を見るため、データ同期をどう実現するかという問題があり、Action Cableを使ったリアルタイム通知や、フロントエンドのRTK Queryとの組み合わせなど、複数の案を検討していました。
ここを詳しく話すと、また別のテックトークになりそうです😅
今回のトークでは、そうした実装の詳細よりも、現場と一緒にモデルを育てていく過程に焦点を当てたのが正解だったと思います。
今回の2つの発表はテーマこそ違いますが、Railsの新しい機能を実際の開発で活かすことと、現場で得られた知見をRailsの設計に活かすこと、それぞれの実践例だったと思います。
私も弊社メンバーも、皆さんの感想ブログを楽しみに読んでいます。弊社メンバーはなかなか控えめなので、自分たちからは言わないかもしれませんが、ぜひブログやTwitter(現X)などで感想を教えていただけたら嬉しいです。
ソフトウェア開発が大きな転換点を迎えている今だからこそ、現場で得られた知見を持ち寄って、Railsのエコシステムを一緒に育てていければと思います。