38
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SchooAdvent Calendar 2024

Day 8

Rubyのフレームワーク特集 🎄~Rails以外の選択肢を知ろう~

Last updated at Posted at 2024-12-07

こんにちは!Schoo Advent Calendar2024の8日目の記事を担当します @ftakizawa です。
最近のマイブームはんぽちゃむです。
今回は、Ruby界隈で「Rails以外のフレームワーク」について取り上げます。
RubyといえばRailsのイメージが強いですが、実は他にも素晴らしいフレームワークがたくさんあるんです。
Railsが強力すぎるせいで「他のフレームワークを知らない」という方も多いのではないでしょうか?
この記事では、用途別にRubyのフレームワークを紹介していきます。SinatraHanamiなどの軽量フレームワークから、特定のユースケースに特化したものまで、幅広く取り上げます!

※GitHubのスター数は2024年11月時点のものです。


1. Sinatra - 軽量でシンプルなフレームワーク (⭐️12.2k)

まずはRubyで最も有名な軽量フレームワーク Sinatra から。
リポジトリ:https://github.com/sinatra/sinatra

require 'sinatra'

get '/' do
  'Hello, world!'
end

Sinatraはとにかくシンプル!こんな感じで、ほんの数行のコードでWebアプリが動きます。
ちょっとしたツールやAPIを作りたいときには最適ですね。軽量さと柔軟性が魅力です。
Railsと比べても公式ドキュメントの量が少なく、Ruby初心者でも簡単にWebアプリケーション開発に取りかかれると思います。


2. Hanami - アーキテクチャ重視派にオススメ(⭐️6.2k)

Hanami は「堅牢なアプリケーションを作りたい」という人向けのフルスタックフレームワークです。
リポジトリ:https://github.com/hanami/hanami

module Web
  class Application < Hanami::App
  end
end

アプリケーションをコンポーネントに分割する設計が特徴です。
RailsはMVCパターンをベースにした設計に対して、HanamiはDDDをベースにしています。
つまりRailsはサービスを素早くローンチすることに向いていて、Hanamiは長期的にメンテナンスすることに向いており、保守性の高いコードを書けることが特徴です。
一歩進んだアプリ設計を学びたい方は、ぜひ試してみてください。


3. Grape - API構築に特化(⭐️9.9k)

RESTfulなAPIを手軽に作りたいなら、 Grape 一択!
リポジトリ: https://github.com/ruby-grape/grape

require 'grape'

class API < Grape::API
  version 'v1', using: :path
  format :json

  get :ping do
    { ping: 'pong' }
  end
end

Grapeは、Ruby用のRESTライクな APIフレームワークです。Rack上で実行したり、RailsやSinatra などの既存の Webアプリケーションフレームワークを補完したりするために設計されており、RESTful API を簡単に開発できるシンプルなDSLを提供しています。
APIバージョニングやリクエストのバリデーションが簡単に書けたりします。
RailsでAPI専用アプリを作るのが大げさに感じたら、Grapeを使ってみましょう。


4. Roda - 高速で柔軟(⭐️2.1k)

軽量かつ柔軟なフレームワークなら Roda がおすすめ。
リポジトリ:https://github.com/jeremyevans/roda

require 'roda'

class App < Roda
  route do |r|
    r.root do
      'Welcome to Roda!'
    end
  end
end

Rodaは非同期処理やスレッドセーフな設計が特徴で、とにかく高速。
必要な機能をプラグインで追加していくスタイルが新鮮です。


5. Camping - 超軽量!(⭐️0.9k)

驚くほど小さなコードベースで動作する Camping
学習用や趣味のプロジェクトにぴったり。
リポジトリ:https://github.com/camping/camping

require 'camping'

Camping.goes :MyApp

module MyApp::Controllers
  class Index
    def get
      'Hello Camping!'
    end
  end
end

ちょっとしたデモアプリを作りたいときに試してみてください。


6. Cuba - 最小限のコードでWebアプリ(⭐️1.4k)

Cuba はシンプルなルーティングとパフォーマンスが魅力。
リポジトリ:https://github.com/soveran/cuba

require 'cuba'

Cuba.define do
  on get do
    on root do
      res.write 'Hello, Cuba!'
    end
  end
end

「コードの最小化」を追求する開発者にはピッタリです。


まとめ - 自分の用途に合ったフレームワークを選ぼう

Rails以外の各フレームワークにも独自の強みがあります。
以下を参考に選んでみてください:

  • 小規模なツールやAPI: Sinatra, Grape, Roda
  • 堅牢な設計を目指す: Hanami
  • パフォーマンス重視: Cuba, Roda

Rubyの可能性はRailsだけじゃない!
このアドベントカレンダーを機に、他のフレームワークにも挑戦してみてはいかがでしょうか? 🎉

参考


Schooでは一緒に働く仲間を募集しています!
https://corp.schoo.jp/careers/graduates
https://corp.schoo.jp/careers

38
8
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
38
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?