introducción a ruby on rails

16
“Web development that doesn’t hurt” Lucía Monte Soto Javier Ferrer Gonzalez UPC-FIB Curso 2013-2014 ASW grupo 13 Introducción a Ruby on Rails

Upload: javier-ferrer

Post on 27-Jun-2015

257 views

Category:

Technology


1 download

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

TRANSCRIPT

Page 1: Introducción a Ruby on rails

“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

Í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

Propósito

● Framework desarrollo Web

● Simplificar el desarrollo

● Utilizar Ruby como lenguaje base

Page 4: Introducción a Ruby on rails

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

● 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

Funcionamiento (estructura)

Page 7: Introducción a Ruby on rails

Funcionamiento (Model)

● Campos deducidos de BBDD● Validaciones legibles● Referencialidad entre tablas

Page 8: Introducción a Ruby on rails

Funcionamiento (Controller)

● Asignaciones a plantilla “directas”● Simple● Métodos “mágicos” (por modelo)

Page 9: Introducción a Ruby on rails

Funcionamiento (View)

● Embedded Ruby (loops, ifs, etc.)

Page 10: Introducción a Ruby on rails

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

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 13: Introducción a Ruby on rails

Perspectivas de futuro

● Activo en cuanto a aportaciones en GitHub.● “Trendy”

Page 14: Introducción a Ruby on rails

Perspectivas de futuro

Page 15: Introducción a Ruby on rails

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

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/