IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Ruby on Rails 海外事情コラム

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第1回 RailsとSinatraで同じアプリを作るとどちらの作業量が多い? (野田貴子) 2015年6月

 ※このコラムはトランスネット社が提供しているコラムです。

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

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

 『Rails vs. Sinatra by Example

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

 RubyではRuby on Railsが飛びぬけて有名なフレームワークですが、Sinatraという軽量フレームワークも人気があります。[Wikipedia](http://ja.wikipedia.org/wiki/Sinatra)によると、アップルや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(自動作成を含めた場合)
コード行数
ファイル数(新規or更新)
コマンド数
9
3
6
12(122)
4(37)
9
2. ブックマーク機能を追加Sinatra Rails(自動作成を含めた場合)
コード行数
ファイル数(新規or更新)
コマンド数
215
12
3
20(237)
8(12)
3(5)

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

Sinatraが向く例

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

Railsが向く例

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

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

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes