Recommended
RVM with Server Environment
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
MS open technologies の ross gardler さんを囲む会 改め 『MS open technologies に必ず伝えてほしい...
Microsoft open technologies の ross gardler さんを囲む会 改め 『microsoft open technolo...
Maglica - A Simple Internal Cloud Tool at #techkayac
Ansible roleとinventoryの書き方
2010年インストールマニアックス ~Javaアプリ編~
Chefを利用した運用省力化とDevOpsの取り組みについて
The Royal Lagoon Bhubaneswar
More Related Content
RVM with Server Environment
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
What's hot (20)
MS open technologies の ross gardler さんを囲む会 改め 『MS open technologies に必ず伝えてほしい...
Microsoft open technologies の ross gardler さんを囲む会 改め 『microsoft open technolo...
Maglica - A Simple Internal Cloud Tool at #techkayac
Ansible roleとinventoryの書き方
2010年インストールマニアックス ~Javaアプリ編~
Chefを利用した運用省力化とDevOpsの取り組みについて
Viewers also liked (18)
The Royal Lagoon Bhubaneswar
素敵なjavascript ~google chrome編~
素敵なjavascript ~Firefox編 ~
フラクタリスト技術知識共有会発表資料 090903
しょぼいプレゼンをパワポのせいにするな! by @jessedee
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
Similar to 20091119_sinatraを使ってみた (20)
Ruby Enterprise Environment
Building Static Website With Github And Jekyll
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Ruby on Rails3 Tutorial Chapter3
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
大規模化するピグライフを支えるインフラ ~MongoDBとChefについて~ (後編)
Rails初心者レッスン lesson1 3rd edition
Docker最新動向2017秋+セキュリティの落とし穴
20091119_sinatraを使ってみた2. Sinatra ってなに? Ruby の超軽量のフレームワークです。 1 モジュールだけで ( も ) 動きます。 基本的には、 Rack や ERB を組み込んだ Dispatcher です。 開発環境構築~開発~本番環境構築 全工程がとっても簡単。 Sinatra の良いところ Ruby のフレームワークと言えば Rails が圧倒的に有名ですが Rails の長所と短所を考えてみると 長所: 大きめの規模の場合、開発効率が良い 短所: 重量級故に実行速度が遅い。 ちょっとしたものを作る時には大げさ。 ということで、 Sinatra は 『 ちょっとしたものを作る時にはいいかも 』 そんなフレームワーク(だと思います) 3. 言葉で説明するより見てもらう方が早い require 'rubygems' require 'sinatra' get '/hi' do 'Hello, world!' end get の部分は、 HTTP メソッドなので、 post, put, delete などが使用できます マッチする URL には、 * や正規表現、変数が使えます。 post ‘/create/*/:id’ do id = param[ :id ] name = param[ :account ][ :name ] end じゃーん! なんだか美しい! 4. その他、基本のご紹介 http://github.com/sinatra/sinatra/blob/master/README.jp.rdoc ソースに日本語ドキュメントが含まれてるので、興味ある方は ご参照ください。 リダイレクト redirect '/', 303 ステータスコード status 404 "Not found“ フィルター before do … end ヘルパー helpers do include Rack::Utils alias_method :h, :escape_html end -> <%=h hoge %> ERB( テンプレート ) の使い方 get '/' do erb :index, layout => true end ./views/index.erb ./views/layout.erb Static ファイル ./public 以下に置く ./public/css/default.css -> /css/default.css ActiveRecord (O/R マッパ ) は使いたい! require 'activerecord' Sessions enable :sessions get '/' do ssid = session[:ssid] end 5. インストールもすごく簡単 Gem で入れるだけです。 # gem install sinatra # gem install mongrel 起動もすごく簡単 これで WEB サーバーごと 起動します! $ ruby hello.rb Port や WEB サーバの指定 $ ruby hello.rb -p 80 -s mongrel Webrick や Thin も、入っているなら指定可能です ソースに 2 行程足せば、 CGI 動作させることも可能です。 6. Apache + passenger(mod_rails) で動かす Passenger で動かすのも簡単です。 # gem install passenger # passenger-install-apache2-module (最後に表示される 3 行の文字列を httpd.conf にコピペ) # mkdir /path/to/sinatra_root/public # mkdir /path/to/sinatra_root/tmp # vi config.ru ------------------------- require ‘hello’ run Sinatra::Application ------------------------- あとは、 DocumentRoot を /path/to/sinatra_root/public に変更して httpd を restart Passenger で動かすメリット Mongrel のように Port を消費しない(いくつも起動しなくていい) tmp/restert.txt というのを一緒にアップすれば restart してくれるので アップすれば OK という簡単デプロイ 速い(らしい) アクセスがない時は自動で子プロセスが消える ->メモリ節約、再起動効果 7. Rails と速度比較してみた 比較環境 Apache2.2.3 + Passenger2.2.5 同一設定 ApacheBench を利用 sinatra は ActiveRecord を require 比較内容 テンプレートを使って簡単な HTML を吐くだけ 比較結果 やっぱり速い! (よかった) () 内は ActiveRecord を require しない場合 Rails 1.2.6 Rails 2.3.4 Sinatra 0.9.4 req /sec 68 83 116 % 82% 100%( 基準 ) 140% VSZ 42M 42MB 21M (13MB) RSS 34M 25MB 18M (9MB) 8. まとめ 長所 なにもかも簡単 コードがシンプル そこそこ速い 短所 作りこむと開発効率悪そう(-> Rails の範疇) 作りこむと結局遅くなりそう(-> Rails もどき化) 結論 ちょっとしたものを作りたいときに。 壁が見当たらないので、初めてのプログラミングにどうでしょう。