この記事はパーフェクトRuby Advent Calendar 2013 12/23の記事です。

タイトルがやたら長い上に意味不明なので、結論から書いておきます。

サマリ

  • RailsからRubyに入るとRackのことを意識しなくても動くアプリが作れる
  • でも仕事で開発してるといつか向き合う必要が出てくる
  • 「パーフェクトRuby」という本の「Webアプリケーション開発」という章が「最も小さなRackアプリケーション」から始まるのはとてもいいことだ

Rackとは

RubyでWebアプリケーションを作る際の、アプリケーションとサーバのインタフェース仕様であり実装のこと。ここが統一されているから、RailsやPadrinoといったWebアプリケーションフレームワークとUnicornやPassengerといったアプリケーションサーバを自由に組み合わせて使うことができる。

詳細は16-1を参照。特に16-1-2「最も小さなRackアプリケーション」は、やったことがなければぜひ体験しておこう。

Sinatraとは

極限までシンプルに徹したWebアプリケーションフレームワーク。公式サイトの最小限サンプルが有名。

require 'sinatra

get '/hi' do
  "Hello World!"
end

各種テンプレートエンジンにも対応してるがファイルの配置は自分でやらなきゃならないし、Assets Pipelineを使いたかったら自分で準備する必要がある。

いろいろ自分でやらなきゃならないのは不便だと思うかもしれないが、その反面「必要なものを選択して入れられる」「なんのためになにを入れるかを学べる」というメリットがある。

ちなみに、SinatraにActive Supportや各種ヘルパ / ジェネレータをバンドルした「Padrino」というフレームワークも存在する。これについては今年の1月に開催された「東京Ruby会議10」しゃべってきたので参照されたい。

「パーフェクトRuby」がSinatraをサンプルにする意味

16章「Webアプリケーション開発」は、Railsなら「rails g」とか一発で済むようなことを、最小限のRackアプリケーションから始まってSinatra、HAML、Bootstrapといちいち手で用意していく。これはつまり、Webアプリケーションを作るプロセスを「手を動かしながら」学ぶことができる貴重な機会ではないだろうか。

まとめ

私はRubyで最初のWebアプリをSinatraで書いたので、16章のステップはとても馴染みがあった。しかし、今更仕事で書くWebアプリをゼロからSinatraでぽちぽち準備する機会はそうそうないのではなかろうか。

Railsしか体験したことのないRubyistのみなさん、「パーフェクト」なRubyistを目指すなら、一度Sinatraでアプリを作ってみると、とてもよい体験になるだろう。そしてそのパートナーとしても、「パーフェクトRuby」は適した一冊だ。