
2025.08.01
災害大国・日本に求められる“命しか守れない防災”からの脱却 最長2週間先の気象災害予測による対応策
リンクをコピー
記事をブックマーク
清野隼史氏(以下、清野):本日はトークセッションとして、先ほどLTをしてもらった櫻庭さんや赤沼さんと一緒に話したいと思います。清野が進めます。よろしくお願いします。
櫻庭洋之氏(以下、櫻庭):よろしくお願いします。
赤沼寛明氏(以下、赤沼):よろしくお願いします。
清野:今回のトークセッションのテーマとして、スライドに書いてある4つを用意しています。最初にこういうテーマにした意図というか背景を説明したいと思います。目的について。Railsは2004年リリースで今はRails7です。Rails1から7まできているので、Webアプリケーションの開発を取り巻く環境は2004年からの18年間ですごく変わってきていると思います。最近、たまに「Railsはオワコンだよね」という声を聞くようになりました。
ただ、実際それを議論しているというか、本当に今オワコンになっているのか。Railsが生み出している今の価値や「こういうところがよくなったらいい」という部分に、あらためてこのトークセッションのタイミングで向き合っていきたいと思い、これらのテーマを用意しました。
さっそく本題に入ります。視聴者のみなさんに質問しますが、今仕事でRailsを使っている方はどれくらいいますか?
赤沼:どれぐらいいるんですかね?
清野:意外と使っていないんですかね。どんどん増えてきました。やはり仕事で使っている方もいると思うので、今回はこれから新しく検討することについても話します。そもそもRailsを使っている方のほか、すでに使っていて「ここからどう向き合っていこう」という方にもお伝えしようと思います。
テーマ1は「今Railsを採用するのはアリ?ナシ?」です。(Railsを使っている方の人数が)53(人)まで行っているみたいですね。ありがとうございます。
新しくサービスを作るタイミングでRailsを採用するのはぶっちゃけアリなのかナシなのか、どういう時ならアリなのかナシなのかについてもうかがいます。はじめに櫻庭さん。
櫻庭:正論ですが、「要件とチームによる」という回答になります。毎年「Rails is dead」と言われるくらい死んでいるので。それくらい使われているという証拠でもありますが、個人的にはオワコンだとは思っていないし、順当に進化しているので採用するのはアリだと。
清野:赤沼さんはどうですか?
赤沼:私も同じような意見です。RubyもあわせてRailsは毎年死んでいるというか、毎年オワコンと言われていますが、私はアリだなと思っています。でも、それはもちろん要件とチーム構成による。例えば、今の私のチームは基本的にRailsばかりで作っているので、同じチームでやるとしたらRailsが妥当だと思います。
プロダクトの内容的には、普通のという言い方はアレかもしれませんが、普通のWebアプリならRailsでいいと思う。パフォーマンスやリッチなフロントエンドを要求される場合はRailsは向かない可能性もあるので、その場合は別のものを選ぶのもアリだという感触です。
清野:機能がシンプルであればRailsの強みを活かせるというか、それだからこそRailsを使うメリットがあるということでしょうか。ちなみに、逆におすすめできないパターン、「こういう方にはお勧めできない」「こういうタイミングでは採用するのは控えたほうがいい」という例があるのか、櫻庭さんにうかがいます。
櫻庭:1つ明確なのは、リッチなエディタ、CMS機能の場合はたぶんReactで作りたくなる。それならサーバーサイド含めてNextでやるほうがシンプルだと思う。ほかにmonorepoというか、モノリシックでメチャクチャ巨大で、モデルもメチャクチャたくさんあって、複数のドメインが交じっているようなものをRailsで作ると開発速度が落ちる。ただRailsじゃなくても落ちる気はします。
清野:今リッチでモノリシックな大きなアプリケーションという話が出ましたが、これもあるあるで、最初にRailsを採用した時はサービスも会社も小さかった。その結果、グロースしたことでアプリケーション自体も大きくなっていったと思います。そこをどう見極めるか、どう判断していくか、どう考えていけばいいのか。
ユニファはすごく(たくさんの)Railsアプリケーションを作っていると思うので、例えばRailsは一度捨てたほうがいいのか、大きくなっていくタイミングでも、向き合い方によって採用はアリなのかをうかがいたいです。
赤沼:私は絶対に捨てなきゃいけないとは思っていません。ユニファも1つのプロダクトからスタートして、「ルクミー」の中ではありますが、次のプロダクトでまったく違う機能を提供したいと思った時に、今までのプロダクトと同じRailsに載せるほうがいいか、別に作るほうがいいのかを内部で議論したんです。
同じところに載せるほうが、今までのユーザーアカウントなどもそのまま使えるので、機能だけ実装すればいいのではないかという意見もありました。ただやっぱりそこが大きくなると後々メンテ(メンテナンス)がつらいので。
最初のプロダクトの構成がもともとあまりよくなかったので、本当にイケてないんですが、最初のプロダクトにもメンテするとつらい部分がある。そこにこれ以上、しかもわりと機能が違うものを載せるとなると後々つらくなると思った。
どれだけ早くプロダクトを提供できるかが1つの勝負でもあったので、それなら別のチームで作ってしまったほうが早く提供できるのではないかと。マイクロサービスを意識していたわけではありませんが、その時は自然と内部の議論で分けたほうがいいという結論に至った。やはり機能が違うものは無理に載せない、合わせないように分けたほうがいいと思っています。
一方で、迷うのはmonorepoがいい流れもあること。弊社はあまりmonorepoでやっていないので、monorepoでやった時との比較ができていませんが、monorepoでやっている方はそのほうがいいところがあるのだと思うので、賛否両論あると思いつつも、弊社の選択はそう(先ほどお話ししたとおり)でした。
アカウントデータの一部を独立して持ってバッと作って先にリリースする選択肢や、後からアカウントを統合するケースもあった。その時々で悩んで選択してきた感じです。
清野:Railsというかアプリケーションが大きくなっていく時に、1つのRailsを肥大化させていくのか、シンプルに保ちつつ複数のアプリケーションをどんどん作っていくのかという選択肢があるということですか。
赤沼:そうですね。
清野:質問も取り上げていきます。1つ目の質問は「もしRailsを採用しないとなった場合は、ほかに何を採用すればいいでしょうか?」。
櫻庭:僕はやはりフロントを軸に選ぶので、フレームワークでいうとNextなどかなと思います。
清野:例えばフロントエンドでReactやVueを使う前提で、バックエンドでもそれに合うフレームワークを選んでいくというスタンスですね。
櫻庭:そうですね。Ruby3でRBSが入って、次に型情報も出てきます。クオリティ次第ですがTypeScriptの型の利便性は強いので、その点で言語ベースで選んだりもすると思います。
清野:ちなみに、ユニファの社内でほかのフレームワークを選定する場面があるとすれば、どんな選択肢がありますか?
赤沼:弊社もTypeScriptなどをもっと活用してもいいのではないかと思います。一方、サーバーサイドのエンジニアの興味という点で考えると、過去にGo言語を使いたいという声もあった。一部でたまにLambdaをGoで書いてみたこともあるので、静的な型付けの言語を使ってみたいという意味も含めて、Goも1つの選択肢になるのかもしれません。
清野:そういう意味では、ナシを選択するのはRailsにはない強みを持っているものを選ぶということですか。型がしっかりあるものや、フロントと整合性をしっかり持って作れるものを判断時には持ってくるということでしょうか?
櫻庭:そうですね。似たようなものにリプレイスしてもあまりうまみがない(笑)。
清野:そうですね(笑)。
清野:次の質問です。「もし今後RailsをリプレイスしたりRailsを捨てたりする判断をすることがあれば、何を判断軸として選択するのか」。今はまだやっていないかもしれませんが、可能性としての判断軸はいかがでしょうか?
櫻庭:1つは、開発速度を担保したくなった時かと思います。プロダクトが成長していくと、機能追加を含めてガンガンやっていくのに伴ってアプリケーションが肥大化したり、コードの質が下がってしまったりする。
機能開発なのにそれが負債になってすごく工数かかるような状況になると、プロダクトの成長がすごく鈍化してしまう。その時に投資としてリファクタリングするのか、思い切ってドメインレベルで分割してマイクロサービス的に、あるいは今流行のモジュラモノリス的に分割していくのかを判断することになると思います。
清野:今の話だと、リプレイスすると判断しても一気に全部を変えるわけではなく、一部分ずつ変えていくという選択肢ですか。
櫻庭:そうですね。なだらかにというか、少しずつグラデーションで切り替えていくのが現実的だと思います。
清野:そういう意味では、もしかするとユニファの構成というか、小さなアプリケーションがたくさんある構成は、ある意味Railsを捨てるという選択になったとしても可用性が高いというか、乗り換えやすいのでしょうか。
赤沼:Railsを捨てるかどうかはその時の技術選定ではありますが、確かに特定のプロダクトに対してリプレイスなりRailsではないもので作る選択肢はあると思います。Railsを捨てたわけではありませんが、過去に1つのプロダクトをリニューアルしたことは実際にあります。
まさに櫻庭さんが言ったように、これ以上はメンテが厳しい、簡単な開発のはずなのにすごく工数がかかる状況になってしまいました。VOYAGE GROUPさんが出した本に“ドアノブを捻ると風呂の底が抜ける”というおもしろい表現があったと思いますが、「ここをいじったらどこに影響が出るのかがわからなくなってきた」という状況になったことがある。
そうなると、多少サービス開発を止めてでもリプレイスしないといつ止まるかわからないので、そのタイミングでもうリプレイスをガラッとリプレイスをガラッと一つのプロダクトでやったというのはありましたね。
(次回につづく)
続きを読むには会員登録
(無料)が必要です。
会員登録していただくと、すべての記事が制限なく閲覧でき、
スピーカーフォローや記事のブックマークなど、便利な機能がご利用いただけます。
すでに会員の方はこちらからログイン
名刺アプリ「Eight」をご利用中の方は
こちらを読み込むだけで、すぐに記事が読めます!
スマホで読み込んで
ログインまたは登録作業をスキップ
関連タグ:
2025.09.08
部下が不幸になる上司のNG行動5選 マネジメントは「自律と統制」のバランスでうまくいく
2025.09.10
人生の差は20代で決まる “指示待ち人間”で終わらないために積むべき4つの経験
2025.09.16
日本人が英語学習で苦戦する根本的原因 「言いたいことの順番」が真逆になる英語と日本語
2025.09.10
「やりたいこと」はないが「課題解決」自体を楽しめる人 Googleの「優秀なエンジニア」の定義
2025.09.04
「管理職になりたくない問題」の原因は上司にもある 部下の昇進意欲を削ぐ行動
2025.09.16
“できる仕事のキャパが10倍になった” 東証上場社長を変えた習慣「ピッパの法則」の効果
2025.09.11
自分の得意・不得意がわかるワーク 人生を再設計する「ライフキャリア」の見つけ方
2025.09.17
英語ネイティブは「would」をどう使っているか? 「Do you like〜」と「Would you like〜」の違い
2025.09.12
“起業が向いている人”と”経営が向いている人”は違う DMM亀山会長が語る、新規事業の生み出し方
2025.09.09
“指示待ち社員”から「自分で考え、動く社員」に育てる方法 セルフリーダーシップの発揮に重要な3つのアプローチ
管理職は罰ゲームではなかった!マネジメントスキル、リーダーシップは財産に!
2025.07.31 - 2025.07.31
後回しを断ち切り“すぐやる人”になる最速メソッド|東証上場社長実践の後回し撲滅法
2025.06.24 - 2025.06.24
「因数分解! 売れない理由は、“売り方”じゃなく “見方”にある」 ~マーケティング×ビジネス数学で、売上を動かす本質をつかむ~
2025.08.06 - 2025.08.06
【板挟みに苦しむ管理職へ】忙しさから“本当に抜け出す”唯一の方法
2025.07.09 - 2025.07.09
「英語OS」を身につけよ! −思考プロセスをアップデートし、英語学習の遠回りを終わらせよう!
2025.07.05 - 2025.07.05