すがブロ

sugamasaoのhatenablogだよ

では、Sinatraの使いどころとは一体

Webアプリエンジニア養成読本 Advent Calendar 2014 - Qiita

これの6日目です。すでに7日になってしまい大変恐縮です。

ところで、この書籍(みなさん100万回読んでいると思うので蛇足だと思っていますが!!)では、Sinatraを使って簡単なWebアプリケーションを作成しています。ちなみに、書籍で作成するWebアプリケーションのソースコードsugamasao/Shiori · GitHub にあります。

なぜSinatraなのか

Sinatra自体は非常に手軽で学習コストが低いこと、その上で一歩ずつ組み立てていくのでWebアプリケーションとは?みたいな題材だとかなり良いと思っているのですよね。Webアプリケーションに必要な構成要素と必要な要素の説明がしやすいんです。

とは言え、カッチリつくろうと思うとファイル数が増えても破綻しないようなディレクトリ構成等を始め、いくつか考えていく必要がでてきます。

SinatraベースのWebフレームワーク

Sinatraベースで、ModelやViewがセット*1になっていて、ディレクトリ構成等がある程度整備されているWebフレームワークとしてPadorinoがあります。

Padrino で素敵なウェブ開発を - Padrino Ruby Web Framework

これを使うと、Sinatraの使い勝手を維持しつつ、ある程度の整備されたレールに乗ることができます。例えば、ジェネレータやコマンドラインベースで実行できるようなrunner等が用意されていて、必須ではないけどあると助かるなぁという部分が補えて良いと思います。

いやしかし……

そう、ここまでやるならRailsで良いのでは。みなさんも思うでしょう。私もそう思います*2。 もちろん、Padrinoにも良さはありますし、自分でコントロールできる幅が広いので、こちらを好む人もいらっしゃるとは思います。ただ、漠然と選択するというよりは、「Padrinoが使いたいんだ!」という気持ちで使って行ったほうが良いのかな、と思います。

では、Sinatraの使いどころとは一体

あまり凝ったことはせず、なんなら1ファイルでも完結するくらい単純なWebアプリケーションを使う場合はとても良いでしょう。例えば、Twitterのとあるキーワードを集めたクローラーを作ったとして、それを閲覧するためのView用のアプリケーションとかですかね。

実際、本書で書いているWebアプリケーションはほぼCRUD操作をする程度のもので、雑に書いてしまえば1ファイルにおさめてしまっても良いくらいの規模ですしね。

まずはお手軽なSinatraを使ってWebアプリケーションを書いて、複雑になって行きそうな規模になったら、その時はRailsやPadrinoを検討してみるのが良いでしょう*3。そうすることで、Sinatraを使う上で検討してきたこと、自分が選んだ選択肢に対して、別のフレームワークがどのような選択をしているのかがわかって情報の洪水に溺れなくて済むのかな、なんて思います。

しなくてはならない宣伝

僕の担当した部分としては、簡単なRubyでのプログラムの書き方からSinatraでのWebアプリケーションまで書いています。どんなもんか興味がある人は書店で立ち読みでもしてみてください*4

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

しなくてはならない宣伝2

もっとRubyにいて知りてーんだよって人にはこちらをおすすめします。

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

あるいは、Railsについて知りたい方はこちら……と言いたいところですが、初めてRailsを触る人向けではないので、その点だけご注意ください。

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails

*1:これらのライブラリはデフォルトで用意されているもの以外に変更することが可能だ

*2:いくら変化が早いと言われてもユーザ数が多い分、情報のでかたに違いがあります

*3:そういう呑気なものが許されるのであれば、、、

*4:気に入ったら買ってね!!