aplicações rack - rs on rails 2010
TRANSCRIPT
HTTP
Christian Neukirchen (2007)
Web = Série de requisições e respostas HTTP.
O resto é framework que vai por cima.
HTTP é fácil!
Requests e Responses
Monday, August 23, 2010
OBJETOS RACKSimplicidade extrema
Deve responder a #call(env)
Status HTTP
Content type
Monday, August 23, 2010
OBJETOS RACKSimplicidade extrema
Deve responder a #call(env)
Status HTTP
Content type
Response body
Monday, August 23, 2010
OBJETOS RACKSimplicidade extrema
Deve responder a #call(env)
Status HTTP
Content type
Response body
Monday, August 23, 2010
OBJETOS RACKSimplicidade extrema
Deve responder a #call(env)
Status HTTP
Content type
Response body
Servidor Rack
Monday, August 23, 2010
PROCESSOS RACKMinimalismo Extremo!
run Proc.new {|env| [200, {"Content-Type" => "text/html"}, ["Hello
world!!"]]}
Monday, August 23, 2010
SERVIDORES RACK
CGI
Unicorn
Phusion Passenger
Ebb
Thin
FCGI
Webrick
Mongrel
Fuzed
Monday, August 23, 2010
FRAMEWORKS RACK
Camping
Rum
Ruby on Rails
Sinatra
Maverick
Mack
Merb
Ramaze
Waves
Monday, August 23, 2010
Distribuição
Especificação
Handlers
Adapters Utilitários
“gem install rack”Middlewares
Rack
Monday, August 23, 2010
Distribuição
Especificação - Rack::Lint
Handlers - Webrick, Mongrel, Passenger, Unicorn...
Adapters - Rails, Sinatra, Merb, Camping...
Monday, August 23, 2010
Middlewares
Rack::Static
Rack::CommonLogger
Rack::Reloader
Rack::ShowExceptions
Monday, August 23, 2010
Middlewares - rack-contrib
Rack::Profiler - Medidor de performance de requests
Rack::StaticCache - Caching para arquivos estáticos
Rack::Config - Configurações compartilhadas por todos middlewares
Monday, August 23, 2010
Middlewares - coderack.org
rack-recaptcha
rack-google_analytics
Zombie Shotgun
Rack::HTML5
Rack::Validate
Monday, August 23, 2010
Utilitários
Rackup
Executa aplicações
Builder
DSL para construção/configuração
Monday, August 23, 2010
SinatraMicro-framework Web
Não é MVC!Restfull
Métodos HTTP(GET, POST, PUT e DELETE)
Monday, August 23, 2010
SinatraHelpers
Filters (before, after)
Redirecionamentos
Controle de Erro
Suporte a middlewares
Testing frameworks
Suporte a templates engines
ERB, HAML, Erubis, ...
SASS, Less, ...
Monday, August 23, 2010
Rails e Rack
ActionDispatch
“Rack for Rails”
Rackup
./config.ru
Rack::Request Rack::Response
ActionDispatch::Request
ActionDispatch::Response
Monday, August 23, 2010
Rails e Rack
use Rack::LockuseActionController::Failsafeuse Rails::Rack::Metaluse ActionController::RewindableInputuse ActionController::ParamsParseruse Rack::MethodOverride...
“rake middleware”
Monday, August 23, 2010
Rails e Rack
# environment.rb
# Push Rack::BounceFavicon at the bottomconfig.middleware.use Rack::BounceFavicon
# Add Lifo::Cache after ActiveRecord::QueryCache.# Pass { :page_cache => false } argument to Lifo::Cache.config.middleware.insert_after ActiveRecord::QueryCache, Lifo::Cache, :page_cache => false
config/environment.rb
Monday, August 23, 2010
Sinatra vs. Rails
Fácil aprendizado
Prototipação
Applicações single-page
Redutores de Url, CMS simples, portifolios, blogs, etc...
Monday, August 23, 2010
Sinatra vs. Rails
Sem migrações
Sem plugins
Difícil implementação de aplicações completas
Monday, August 23, 2010
Referências
Rack - http://github.com/chneukirchen/rack
Rack Middleware - http://railscasts.com/episodes/151-rack-middleware
Rack in Rails 3 - http://railscasts.com/episodes/222-rack-in-rails-3
Sinatra - http://www.sinatrarb.com
Monday, August 23, 2010
OBRIGADO
@tbueno
tbueno.com
Monday, August 23, 2010