更新情報

みなさんこんにちは!今月から始まったこのコラムでは、海外で話題に挙がったRuby on Railsネタを提供していきます。

今月のネタ元はこちらです。

Rails vs. Sinatra by Example

「例から見るRailsとSinatraとの違い」ですね。
Rails以外のフレームワークも見てみると、Railsの特徴を再確認できるのではないでしょうか。

RubyではRuby on Railsが飛びぬけて有名なフレームワークですが、Sinatraという軽量フレームワークも人気があります。[Wikipedia]によると、アップルやBBCなど多くの企業でも使われているようですよ。

両者の特徴をサラッと確認してみましょう。

[Rails]
発表年:2004年
作者:David Heinemeier Hansson
特徴:MVCベース、いろんなものを自動生成

[Sinatra]
発表年:2007年
作者:Blake Mizerany
特徴:MVCに基づかない、必要最低限の機能のみ

ネタ元では、RailsとSinatraでそれぞれ同じアプリを作り、Herokuにデプロイしています。アプリの機能は以下の通りです。

1. 最初は「Hello World」を出力するだけ
2. あとからソーシャルブックマークの機能を追加
・ブックマーク作成
・ブックマーク表示
・ブックマーク削除(パスワードによる制限あり)

それぞれのフレームワークで、コード量などにどのような違いが出たかを以下にまとめてみました。詳細な手順やコードが知りたい方は、ぜひネタ元をご覧ください。完成したアプリもそれぞれGitHubで公開されています。

———————————————————————
1. 「Hello World」出力テスト | Sinatra | Rails(自動作成を含めた場合)
———————————————————————
コード行数                   |       9 | 12(122)
ファイル数(新規or更新)     |       3 |   4(37)
コマンド数                   |       6 |      9
———————————————————————
2. ブックマーク機能を追加    | Sinatra | Rails(自動作成を含めた場合)
———————————————————————
コード行数                   |     215 | 20(237)
ファイル数(新規or更新)     |      12 |   8(12)
コマンド数                   |       3 |      5
———————————————————————

Rails とSinatraの大きな違いは、自動で作成されるコードの有無ですね。小さなアプリを作るときはSinatraが手軽でコード量も少なく済みますが、 データベースを使い始めると、Railsの方が作業量が少なくなるのが分かります。どちらも一長一短なので、目的に合わせて選択できるといいですよね。

Sinatraが向く例
・手軽にアプリを作り始めたいとき
・サーバー側の処理がメインで画面の出力があまりないとき
・Padrinoの機能の中から必要なものだけ選んで使いたいとき
・一から作りたいとき

Railsが向く例
・データモデルを使うとき
・規模が小さくないとき
・一から作る時間がないとき

それではまた。来月もお楽しみに!