WorkshopCamp Mexico 09 - Uniendo los puntos con Ruby on Rails

Preview:

DESCRIPTION

Presentación de Ruben Medellín en el WorkshopCamp México 09

Citation preview

Uniendo los puntos

en Ruby On Rails

Rubén Medellín@chubas

Bajo licencia Creative Commons Attribution-Non-Commercial-Share Alike 2.5

WorkshopCamp México25 – 10 – 09

ABSTRACCIONES

Abstracciones

Componentes esenciales de las cosas

Modelo web tradicional

La MAGIAde Rails

NO HAYMAGIA

Entender muy bien los componentes de Rails

¿Qué es Rails?

Tim O'Reilly, fundador de O'Reilly Media

“Ruby on Rails is a breakthrough in lowering the barriers of entry

to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a

matter of days.”

Una que me gusta más

Nathan Torkington, O'Reilly Program Chair for

OSCON

“Ruby on Rails is astounding. Using it is like watching a kung-fu movie, where a dozen bad-ass frameworks prepare to beat up the little newcomer only to be handed

their asses in a variety of imaginative ways.”

Mi propia definición

Rails es una plataforma de desarrollo cuyo

principal objectivo es eliminar la complejidad innecesaria, haciendo el proceso más ágil y al desarrollador más feliz

La “magia” de Ruby on Rails está en sus principios:

• Convention over configuration• Complex framework, simple logic• Test, then code• Don't repeat yourself• Don't reinvent the wheel

• entre otros

MVC en Rails

ActiveRecord+

ActionController+

ActionView

ActiveRecord

ORM – Object Relational Mapper

Database agnostic

Modelos

• save, save!• new, create, create!• delete• find, find_by_*

CRUD

Modelos

• has_many• belongs_to• has_and_belongs_to_many

Relación entre entidades

Modelos

Validaciones Callbacks / Observadores

Validación y procesamiento

ActionController

Procesamiento y resolución de peticiones

Controladores

Recibe peticiones

Accede a los modelos

Prepara una respuesta (generalmente una vista)

Rutas

En base a regexps + opciones

url_for / rutas nombradas

REST

Controladores

Se dividen en acciones

Fat models, thin controllers

Controladores

Tienen acceso al objeto request y sus atributos

Headers, cookies, sesión, parámetros (GET o POST), response

Filtros y wrappers

Se encargan de preparar la respuesta

Respuesta

Por convención, rails regresará una vista con el nombre de la acción

Se puede regresar otra vista, datos (archivos, streams), redirecciones, errores, AJAX

ActionView

•Sistema de templates

•Accede a las variables y datos pasados por el controlador

•La menor lógica posible en las vistas

Pero eso no es todo...

La arquitectura Rails es altamente escalable

• PLUGINS / GEMAS

Plugins para:•OpenID

•Autenticación•Control de acceso

•Roles•Paginación

•APIs externas•(Twitter, Youtube, flickr, google maps)

•Búsqueda (sphinx, ferret)•Vistas•Formas

•CSS

Taller práctico

Recommended