Alternativas a Rails para sitios y  servicios web ultraligeros
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Alternativas a Rails para sitios y servicios web ultraligeros

  • 2,750 views
Uploaded on

Charla sobre Rack, Rails Metal y Sinatra como alternativas a Rails, presentada en la Conferencia Rails 2009

Charla sobre Rack, Rails Metal y Sinatra como alternativas a Rails, presentada en la Conferencia Rails 2009

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,750
On Slideshare
2,734
From Embeds
16
Number of Embeds
1

Actions

Shares
Downloads
14
Comments
0
Likes
0

Embeds 16

http://www.slideshare.net 16

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Alternativas a Rails para sitios y servicios web ultraligeros Raúl Murciano Conferencia Rails 2009
  • 2. github.com/raul/conferencia_rails_2009
  • 3. Quién soy ● Freelance: raul.murciano.net ● Consultoría/Formación: ● linkedin.com/in/raulmurciano ● Comunidad: spainrb.org - srug.org ● github.com/raul ● twitter.com/happywebcoder
  • 4. Background tecnología ● Java → PHP → Ruby on Rails ● Huyo de la complejidad ● Me encanta el código expresivo y conciso
  • 5. I Rails
  • 6. Rails aporta muchas cosas
  • 7. ...pero no hay balas de plata
  • 8. ...pero no hay balas de plata
  • 9. ...pero no hay balas de plata
  • 10. ...pero no hay balas de plata
  • 11. ...pero no hay balas de plata
  • 12. Rails Middleware / Metal
  • 13. En el capítulo de ayer... “Rails 3: performance & rack integration”
  • 14. En el capítulo de ayer... “Rails 3: performance & rack integration” What the f*ck is Rack?
  • 15. Rack
  • 16. Rack env: { 'PATH_INFO' => '/foo/bar', ... } [ status_code, headers_hash, content ] call(env)
  • 17. Rack: handlers
  • 18. Rack: rutas
  • 19. Rack: fltros
  • 20. Rack: fltros
  • 21. Rack: apilando fltros
  • 22. Rack: seleccionando fltros
  • 23. Rails Rack
  • 24. Rails Middleware rake middleware muestra la pila de fltros
  • 25. Rails Middleware
  • 26. Rails Middleware
  • 27. Rails Metal
  • 28. Rails Metal
  • 29. Ecosistema Rack ● Rack::Utils: utilidades para frameworks escape_html, parse_query, … ● Rack::Contrib: componentes Rack ETags, cookies, profling, … ● Rack::Test ● CodeRack.org
  • 30. Sinatra
  • 31. Sinatra ● Micro framework, 1 ó 2 dependencias: rack, shotgun ● Micro aplicaciones ● Se ejecuta como un script ruby más
  • 32. Sinatra: parámetros en las rutas
  • 33. Sinatra: parámetro splat
  • 34. Sinatra: vistas inline
  • 35. Sinatra: vistas infle
  • 36. Sinatra: vistas separadas Raul Murciano, Conferencia Rails 2009
  • 37. Sinatra: helpers
  • 38. Sinatra: layout
  • 39. Sinatra: partials
  • 40. Sinatra: REST PUT, DELETE _method Params anidados
  • 41. Sinatra: fltros (Aplican a todos, no hay :only ni :except)
  • 42. Sinatra: confguración
  • 43. Sinatra: gestión de errores
  • 44. Sinatra Rack
  • 45. Sinatra: misc ● Sesiones, cookies vía Rack::Session Gotchas ;) ● no usa secret por defecto! ● Si guardas un array has de deserializarlo a mano ● Cabeceras, redirecciones ● Archivos estáticos, /public ● Extensiones github.com/nesquena/sinatra_more/
  • 46. Sinatra: base
  • 47. Sinatra: ejemplos ● Taps: a simple database agnostic import/export app to transfer data to/from a remote database ● Integrity: easy and fun Continuous Integration server ● Panda: Video encoding made easy with AWS ● Hancock: Single Sign On Server ● Shrtr: a link shortener service ● TooPaste: pastie clone ● ...
  • 48. Sinatra como Rails Metal
  • 49. Rendimiento Rails Metal Pratik Naik: 1-2ms de diferencia. DHH: ● “the difference is tiny for regular HTML-based web application stuff”, ● “you shouldn’t jump to metal before Action Controller has proved itself to be too slow” tinyurl.com/perf-rails-metal
  • 50. Rendimiento Rails/Sinatra/Rack tinyurl.com/ruby-web-performance
  • 51. There are no silver bullets
  • 52. There are no silver bullets ...so Use the Best Tool for the Job
  • 53. Use the Best Tool for the Job Generadores de contenido estático: ● Jekyll: wiki.github.com/mojombo/jekyll ● Nanoc: nanoc.stoneship.org ● StaticMatic: staticmatic.rubyforge.org ● Webby: webby.rubyforge.org From Mike Gunderloy: gist.github.com/242751
  • 54. Use the Best Tool for the Job En mi opinión... ● Usar Rails middleware/metal por rendimiento sólo tiene sentido en casos muy puntuales ● Rails middleware/metal es una buena alternativa a mod_rewrite y similar
  • 55. Use the Best Tool for the Job En mi opinión... ● Rack es un protocolo perfecto, pero es demasiado áspero como framework ● Merece la pena echar un vistazo a Rack::Contrib, Rack::Utils y Rack::Test
  • 56. Use the Best Tool for the Job En mi opinión... ● Sinatra != Spaghetti code github.com/raul/sinatra_template ● Sinatra es muy útil para: ● dar interfaz web a un servicio ya existente ● webservices a medida ● proyectos que se alejan mucho del stack Rails ● micro aplicaciones
  • 57. Use the Best Tool for the Job En mi opinión... ● Sinatra != Spaghetti code github.com/raul/sinatra_template ● Sinatra es muy útil para: ● dar interfaz web a un servicio ya existente ● webservices a medida ● proyectos que se alejan mucho del stack Rails ● micro aplicaciones ¡¡¡divertirse!!!
  • 58. Sinatra Rails Rack everybody
  • 59. Enlaces ● Rack: rack.rubyforge.org ● Sinatra: sinatrarb.com ● Rails & Rack (Middleware/Metal): guides.rubyonrails.org/rails_on_rack.html
  • 60. Gracias! :) ¿Preguntas? github.com/raul/conferencia_rails_2009 twitter.com/happywebcoder workingwithrails.com/person/5988-raul-murciano