2016年10月20日

Rubyの軽量フレームワークSinatraは初心者におすすめ

Sinatraとは

SinatraとはRubyで作成されたオープンソースのWebアプリケーションフレームワークです。
軽量なフレームワークで、簡単なウェブサイトを作成するのに適しています。

商用規模での採用事例は多く、アップル、BBC、イギリス政府、LinkedIn、Heroku、GitHub、Songbird、スタンフォード大学、レッドハットといった名だたる企業や団体に利用されています。

非常に学習コストが低く、それでいてある程度スケーラブル(拡大可能)なプログラミングができるので初心者の方が初めてWebプログラミングに触れるのに適したフレームワークだと考えています。
もちろん初心者でなくても利用されることはあり、多くは小規模なウェブサイトの作成に使用されます。

軽量フレームワークとは?

Sinatraは軽量フレームワークと言われていますが、そもそも軽量とはどういった意味なのでしょうか?

RubyにはSinatraの他にRuby on Railsというとても有名なフレームワークが存在しますが、Railsはフルスタックフレームワークと呼ばれ、Sinatraと対をなすようなフレームワークです。
機能が豊富な一方で、それを使いこなすにはそれ相応の学習コストが必要です。

それに対してSinatraは提供している機能が必要最小限に留まっており、簡単なウェブサイトを作る分には覚えることが少ないのが特徴です。そのような観点から「軽量フレームワーク」と呼ばれます。

なぜSinatraがおすすめなのか

個人的な意見ですが、初心者の方が初めてWebプログラミングに触れるときに最も重要だと考えているのは「自分が何をしているか理解できる」「何か変更を加えたらそれがエラーなくすぐに動作すること」です。

Railsのような大きなフレームワークだとちょっとしたプログラムを書くまでに様々な設定をしなければなりませんし、自分がやりたいことではない別のことでエラーが発生してしまい、立ち往生したまま挫折してしまうケースが多いのです。
その点SinatraではHTMLを表示するまでの過程が少なく、また最小構想なら一切の設定も必要なく、書くべきプログム量も最小限に抑えられます。

筆者もこれまでプログラミングの研修を行う際に、初めてのWebプログラミングでRubyを触れる人にはSinatraをいつも採用しており、ほとんど挫折なくSinatraを習得しているという実感が有ります。
ただしRubyを使ってWebプログラミングを行う場合、コマンドラインの利用が必須になるため、もしかしたら独学の人はコマンドラインへの抵抗が大きく、環境構築の時点で躓いてしまうかもしれません。

あの「黒い画面」がいきなり得意という人はほとんどいないと思いますので、もしも独学で始めのWebプログラミングでRubyを選ぶ場合は、粘り強く、知らないことを覚えることを「エンジョイ」しながらできれば、きっと乗り越えられると思います。

コードの例

この記事ではSinatraを学習するためのコンテンツは提供していませんが、Sinatraがいかに簡単なものかをお伝えするために少しだけコードを紹介します。

require 'sinatra'

get '/' do
'Hello World!'
end

この場合、ポートが4567ならば「http://localhost:4567」にアクセスすると「Hello World!」とブラウザに表示されます。凄く簡単ですよね。
(ポートってなに?と思う人もいるかもしれませんが、この場合は通信をおこなうための識別子と思っていただければ問題ありません。Sinatraはデフォルトで4567というポートを持っており、URLに4567を指定することでSinatraがリクエストに応答してくれるということになります)

では「http://localhost:4567/home」というURLにアクセスした時に「Hello Home!」と表示させるにはどうしたら良いでしょうか。
その場合のコードは以下のようになります。

require 'sinatra'

get '/' do
'Hello World!'
end

get ‘/home’ do
'Hello Home!'
end

たったこれだけで「Hello Home!」と表示されます。

厳密な説明がなくても、どのような法則で動いているのかが分かりやすいですよね。
このように小難しい前提知識が必要なく、自分がアクセスしたいURLを定義して、そのURLでどんな結果を返すかを定義していくのがSinatraの初めの一歩です。

ここでは単なる文字列だけを返していますが、HTMLファイルを書いて、それを返すことも簡単にできます。そのHTMLにRubyのプログラミングを混在させることも簡単です。

この記事ではSinatraの説明はここまでにさせていただきますが、「Sinatraって簡単じゃん」と思っていただければ幸いです。

Sinatra入門のおすすめサイト

この記事を見てSinatraをやってみよう!と思っていただければ大変ありがたいのですが、そのような方のためにおすすめの学習サイトを紹介します。

まずはこちらの公式サイトの説明がおすすめです。
公式サイトだけあって様々な機能を網羅しています。ただし設定やテストの項目は覚える必要はありません。

教科書のようにただ読み進めていても何がなんだかわからないということになってしまうので、最初の項目から写経していって、自分がやりたいことを見つけたら、そっちに没頭してしまいましょう!
書かれていることを覚えるのではなく、「どうしたら自分が思ったことができるのか」ということにフォーカスして行わないと今覚えなくてもいいことばかりやってしまいます。

優等生的な人ほど真面目に書かれていることを覚えようとしてパニックになることがありますが、プログラミングの基本は「とにかく自分で動かすこと」です。
プログラミングの基礎知識などは後から勝手に身についてくるので、とにかく自分がやりたいことをとことんやりましょう。結局それが一番の近道なのです。

次におすすめなのがこちらのページです。
ただし、前提知識を色々とすっ飛ばしてしまっているので、本当にWebプログラミング初心者の方がやる内容ではないかもしれません。

もちろんこれらのページ以外にも良い入門ページがありますので「Sinatra 入門」と検索して色々なページをチェックしてみてください。

それでは良いプログラミングライフを!
Enjoy Programming!

おすすめのWebアプリケーションフレームワークをランキング形式で紹介【プログラミング】
おすすめのWebアプリケーションフレームワークをランキング形式で紹介【プログラミング】
この記事は、運営チームとユーザーの投票によって「おすすめ」された、人気の「Webフレームワーク」をランキング形式で紹介しています。 1位から順に表示され、スクロールするほどランキング下位になります。各フレームワークには公式サイトおよびGitHubのリポジトリへのリンクを貼っているので、興味のあるフレームワークがあればそちら詳しい情報を参照してください。皆さんが、使ってみたいと思えるフレームワークを見つけて、開発のお役に立つことができれば幸いです。

この記事に関するキーワード

カテゴリ一覧