Download - Introducción a Ruby on rails
![Page 1: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/1.jpg)
“Web development that doesn’t hurt”
Lucía Monte SotoJavier Ferrer Gonzalez
UPC-FIB Curso 2013-2014ASW grupo 13
Introducción a Ruby on Rails
![Page 2: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/2.jpg)
Índice
● Propósito● Evolución histórica● Características● Funcionamiento interno● Ejemplos● Framework similares● Pros/Contras● Ejemplos de uso● Perspectivas de futuro● Conclusiones● Referencias
![Page 3: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/3.jpg)
Propósito
● Framework desarrollo Web
● Simplificar el desarrollo
● Utilizar Ruby como lenguaje base
![Page 4: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/4.jpg)
Evolución histórica
● Release 0.0~1.0 -> 13/12/05○ Caching, web services, routing, Ajax, filters, SQLite3
● Release 1.~2.0 -> 07/12/07○ REST, soporte debug, cambiado exception handler,
mejoras rendimiento.● Release 2.~3.0 -> 29/09/10
○ Integración con Merb(+APIS)○ Helpers de JavaScript con controladores para
prototype y jQuery, nueva Action Mailer API.● Release 4.0 -> 21/06/13
○ Strong parameters, mejora caching(rusian doll caching)
![Page 5: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/5.jpg)
● Gracias a Ruby○ Orientación a objetos “total”○ Código “bueno, bonito y barato”○ Dinámico pero fuertemente tipado○ Closures, clases “abiertas”…
● Propias de Rails○ MVC○ ORM ActiveRecord integrado○ Convención sobre configuración○ DRY (atributos BBDD, getters ActiveRecord…)○ Embedded Ruby en plantillas○ prototype y script.aculo.us○ Unit, function & integration testing
Características
![Page 6: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/6.jpg)
Funcionamiento (estructura)
![Page 7: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/7.jpg)
Funcionamiento (Model)
● Campos deducidos de BBDD● Validaciones legibles● Referencialidad entre tablas
![Page 8: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/8.jpg)
Funcionamiento (Controller)
● Asignaciones a plantilla “directas”● Simple● Métodos “mágicos” (por modelo)
![Page 9: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/9.jpg)
Funcionamiento (View)
● Embedded Ruby (loops, ifs, etc.)
![Page 10: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/10.jpg)
Frameworks similares
● Sinatra○ 2000 lineas de código○ MVC○ No ORC○ Routes and controllers○ “Take what you need”
● Rack/PadrinoPuntuación basada en la actividad de Github y descargas de Rubygem:
![Page 11: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/11.jpg)
Pros/Contras - RoR Vs Sinatra● Pros
○ Ofrece muchas funcionalidades.○ Está bien documentado.
● Contras○ Demasiadas funcionalidades para las necesidades de
las webs simples.○ Curva de aprendizaje lenta.○ Más lento y menos ligero.
![Page 12: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/12.jpg)
Ejemplos de uso
● Twitter● Github● Shopify● Basecamp● Groupon● Yellow Pages● …
![Page 13: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/13.jpg)
Perspectivas de futuro
● Activo en cuanto a aportaciones en GitHub.● “Trendy”
![Page 14: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/14.jpg)
Perspectivas de futuro
![Page 15: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/15.jpg)
Conclusiones
● Diversidad de funcionalidades (ampliable via módulos/Gemas)
● Código expresivo● Programación rápida y “fácil” gracias a la
convención sobre configuración.● Válido para proyectos grandes.● Tendencia a la alza.
![Page 16: Introducción a Ruby on rails](https://reader036.vdocuments.net/reader036/viewer/2022081404/558ebc411a28ab801f8b46e0/html5/thumbnails/16.jpg)
Referencias
● Slides introducción:○ http://www.slideshare.net/Joopp/ruby-on-rails-presentation-
presentation○ http://www.slideshare.net/aizatto/ruby-on-rails-48391○ http://www.slideshare.net/madrobby/ruby-on-rails-introduction
● Tutoriales interactivos:○ http://tryruby.org/○ http://railsforzombies.org/
● Caracteristicas frameworks○ http://www.rubyfleebie.com/ruby-is-dynamically-and-strongly-typed/○ http://www.millwoodonline.co.uk/blog/sinatra-vs-ruby-on-rails○ https://www.ruby-toolbox.com/categories/web_app_frameworks#○ http://weblog.rubyonrails.org/releases/