Upload
javier-ferrer
View
257
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Presentación realizada para la asignatura de Aplicaciones y Servicios Web del curso 2013-2014 en la FIB-UPC. Da unas pinceladas muy básicas sobre el framework de desarrollo web Ruby on Rails. El contenido de la presentación se rige en base a la rúbrica de evaluación de la asignatura, de ahí que salgan quizás demasiados datos históricos y de perspectivas
Citation preview
“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
Índice
● Propósito● Evolución histórica● Características● Funcionamiento interno● Ejemplos● Framework similares● Pros/Contras● Ejemplos de uso● Perspectivas de futuro● Conclusiones● Referencias
Propósito
● Framework desarrollo Web
● Simplificar el desarrollo
● Utilizar Ruby como lenguaje base
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)
● 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
Funcionamiento (estructura)
Funcionamiento (Model)
● Campos deducidos de BBDD● Validaciones legibles● Referencialidad entre tablas
Funcionamiento (Controller)
● Asignaciones a plantilla “directas”● Simple● Métodos “mágicos” (por modelo)
Funcionamiento (View)
● Embedded Ruby (loops, ifs, etc.)
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:
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.
Ejemplos de uso
● Twitter● Github● Shopify● Basecamp● Groupon● Yellow Pages● …
Perspectivas de futuro
● Activo en cuanto a aportaciones en GitHub.● “Trendy”
Perspectivas de futuro
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.
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/