CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
※このコラムはトランスネット社が提供しているコラムです。
みなさんこんにちは!今月から始まったこのコラムでは、海外で話題に挙がった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など多くの企業でも使われているようですよ。
両者の特徴をサラッと確認してみましょう。
発表年:2004年
作者:David Heinemeier Hansson
特徴:MVCベース、いろんなものを自動生成
発表年:2007年
作者:Blake Mizerany
特徴:MVCに基づかない、必要最低限の機能のみ
ネタ元では、RailsとSinatraでそれぞれ同じアプリを作り、Herokuにデプロイしています。アプリの機能は以下の通りです。
それぞれのフレームワークで、コード量などにどのような違いが出たかを以下にまとめてみました。詳細な手順やコードが知りたい方は、ぜひネタ元をご覧ください。完成したアプリもそれぞれ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が向く例
Railsが向く例
それではまた。来月もお楽しみに!
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes