Documentos de Académico
Documentos de Profesional
Documentos de Cultura
04 Ror1
04 Ror1
Banot.net http://www.banot.net/
Octubre de 2010
ncor/Imobach GS (Banot.net)
Octubre de 2010
1 / 28
Contenidos
ncor/Imobach GS (Banot.net)
Octubre de 2010
2 / 28
Contenidos
ncor/Imobach GS (Banot.net)
Octubre de 2010
3 / 28
Lenguaje dinmico (ruby way) Mtodos de clase frente a mtodos de instancia Smbolos Asociativos (Hash) y parmetros por nombre
ncor/Imobach GS (Banot.net)
Octubre de 2010
4 / 28
Lenguaje dinmico (ruby way) Mtodos de clase frente a mtodos de instancia Smbolos Asociativos (Hash) y parmetros por nombre
ncor/Imobach GS (Banot.net)
Octubre de 2010
4 / 28
Lenguaje dinmico (ruby way) Mtodos de clase frente a mtodos de instancia Smbolos Asociativos (Hash) y parmetros por nombre
ncor/Imobach GS (Banot.net)
Octubre de 2010
4 / 28
Lenguaje dinmico (ruby way) Mtodos de clase frente a mtodos de instancia Smbolos Asociativos (Hash) y parmetros por nombre
ncor/Imobach GS (Banot.net)
Octubre de 2010
4 / 28
Contenidos
ncor/Imobach GS (Banot.net)
Octubre de 2010
5 / 28
Rails 3
Merb 1 + Rails 2 = Rails 3 Lanzamiento muy reciente Profunda reestructuracin y muchos cambios Arquitectura ms modular Agnosticismo (ORM, framework javascript, vistas. . . ) Javascript no intrusivo (aprovechando HTML 5) Mejor enrutado de peticiones (incluso entre diferentes aplicaciones/frameworks) Gestin de dependencias (Bundler) Espectacular mejora de rendimiento
ncor/Imobach GS (Banot.net)
Octubre de 2010
6 / 28
Contenidos
ncor/Imobach GS (Banot.net)
Octubre de 2010
7 / 28
Qu es Ruby on Rails?
Plataforma para desarrollo de aplicaciones web Desarrollado por David Heinemeier Hansson, Dinamarca Extrado de un proyecto real (Basecamp, de 37signals) Facilita el desarrollo, despliegue y mantenimiento De bajo nivel pero cercano al dominio del problema Basado en prcticas giles de desarrollo
ncor/Imobach GS (Banot.net)
Octubre de 2010
8 / 28
Por qu es especial?
Dont repeat yourself
ncor/Imobach GS (Banot.net)
Octubre de 2010
9 / 28
Por qu es especial?
Dont repeat yourself
ncor/Imobach GS (Banot.net)
Octubre de 2010
10 / 28
Por qu es especial?
Convencin frente a conguracin
class Event < ActiveRecord::Base set_table_name "event" set_primary_key "identifier" has_and_belongs_to_many :assistants, :class_name => "People", :join_table => "assist", :foreign_key => "event" end
ncor/Imobach GS (Banot.net)
Octubre de 2010
11 / 28
Por qu es especial?
Convencin frente a conguracin
ncor/Imobach GS (Banot.net)
Octubre de 2010
12 / 28
ncor/Imobach GS (Banot.net)
Octubre de 2010
13 / 28
Contenidos
ncor/Imobach GS (Banot.net)
Octubre de 2010
14 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para De invencin bastante reciente Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para De invencin bastante reciente Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para De invencin bastante reciente Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para De invencin bastante reciente Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para atraerlos a todos y atarlos a las... errhhh De invencin bastante reciente Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para hacer clculos y unir todas las piezas De invencin bastante reciente Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para hacer clculos y unir todas las piezas De invencin bastante reciente Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para hacer clculos y unir todas las piezas De invencin bastante reciente (1979) Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo, Vista y Controlador Modelo para los datos Vista para la interfaz (HTML en este caso) Controlador para hacer clculos y unir todas las piezas De invencin bastante reciente (1979) Muy popular actualmente para plataformas de desarrollo web
ncor/Imobach GS (Banot.net)
Octubre de 2010
15 / 28
Modelo
Acceso a los datos de la aplicacin y reglas para manipularlos Mdulo genrico ActiveModel Modelos almacenados en BBDD relacionales ORM mdulo ActiveRecord Una clase representa una tabla Se descubren automticamente los campos... ...y la tabla (Alumno alumnos) Se pueden declarar relaciones con otros modelos/tablas Se puede personalizar y aadir mtodos
ncor/Imobach GS (Banot.net)
Octubre de 2010
16 / 28
Vista
Para decidir el aspecto Mdulo: ActionView Plantillas en formato Embedded Ruby (por defecto) HTML con Ruby embebido Una por cada accin de cada controlador Corolario: dependen de los controladores HTML repetitivo, a funciones externas (helpers)
ncor/Imobach GS (Banot.net)
Octubre de 2010
17 / 28
Controlador
Bisagra del MVC y lgica de clculos Mdulo: ActionPack Cada controlador, una clase de Ruby Cada mtodo, una accin Andamios (scaffold) para avanzar ms rpido
ncor/Imobach GS (Banot.net)
Octubre de 2010
18 / 28
1 2 3 4
El navegador enva una peticin El controlador interacta con los modelos Los controladores invocan a las vistas La vista dibuja la siguiente pgina para el navegador
ncor/Imobach GS (Banot.net)
Octubre de 2010
19 / 28
Contenidos
ncor/Imobach GS (Banot.net)
Octubre de 2010
20 / 28
Opciones destacables
database template ruby skip-proyotype, skip-active-record, skip-test-units skip-git
ncor/Imobach GS (Banot.net)
Octubre de 2010
21 / 28
ncor/Imobach GS (Banot.net)
Octubre de 2010
22 / 28
ncor/Imobach GS (Banot.net)
Octubre de 2010
23 / 28
La orden rails
new crea una nueva aplicacin generate genera cdigo (modelos, recursos, pruebas. . . ) destroy elimina cdigo (lo opuesto a generate) server servidor simple (para desarrollo) console consola interactiva dbconsole consola de la base de datos plugin instala un plugin runner ejecuta trozos de Ruby (en nuestra aplicacin) benchmarker para comprobar el rendimiento prole informacin de proling
ncor/Imobach GS (Banot.net)
Octubre de 2010
24 / 28
1 2
El navegador enva una peticin El cdigo de enrutado decide en qu controlador delegarla (o enviarla a otra aplicacin, o. . . ) El controlador interacta con los modelos Los controladores invocan a las vistas La vista dibuja la siguiente pgina para el navegador
Desarrollo web con Ruby on Rails 3 Octubre de 2010 25 / 28
3 4 5
ncor/Imobach GS (Banot.net)
Componentes de Rails 3
Action Pack Gema que contiene tres componentes Action Controller parmetros HTTP, sesiones, redirecciones. . . Action View genera HTML o XML a partir de plantillas Action Dispatch enruta las peticiones dentro de la aplicacin o a otra aplicacin Rack Action Mailer para enviar y recibir correos electrnicos Active Model interfaz entre Action Pack y la capa de persistencia Active Record ORM, base de los modelos Active Resource permite utilizar recursos REST como objetos locales Active Support clases tiles y extensiones a las de Ruby Railties para crear aplicaciones y unir los dems componentes
ncor/Imobach GS (Banot.net)
Octubre de 2010
26 / 28
Crear aplicacin rails new demo Ejecutarla rails server Crear controlador Saludos rails generate controller saludos
ncor/Imobach GS (Banot.net)
Octubre de 2010
27 / 28
Implementar la accin hola en app/controllers/saludos_controller.rb Denir una ruta para nuestra accin en config/routes.rb Crear la plantilla para nuestra accin en app/views/saludos/hola.html.erb Crear accin adios Enlazar nuestras acciones usando el helper link_to en nuestras plantillas
ncor/Imobach GS (Banot.net)
Octubre de 2010
28 / 28