Ruby On Rails (Parte 1. Introducción)

Preview:

DESCRIPTION

 

Citation preview

Confidentiel

Seminario I:

Confidentiel04/10/20062

Índice

¿Por qué surge Ruby on Rails?

¿Quiénes usan Ruby on Rails?

Ruby el Corazón de Rails

Ruby on Rails, el desarrollo ágil

¿Por donde empiezo?

Confidentiel04/10/20063

Índice

¿Por qué surge Ruby on Rails?

¿Quiénes usan Ruby on Rails?

Ruby el Corazón de Rails

Ruby on Rails, el desarrollo ágil

¿Por donde empiezo?

Confidentiel04/10/20064

¿Por qué surge Ruby on Rails?

“Convertir las debilidades en fortalezas”

Sun Tzu. El arte de la guerra

Confidentiel04/10/20065

¿Por qué surge Ruby on Rails?

� ¿Cómo es un desarrollo web?

Tarea 1

Tarea 2

Tarea 3

Tarea 6

Tarea 2

Tarea 1

Tarea 1

Tarea 4

Tarea 5

Tarea 3

Confidentiel04/10/20066

¿Por qué surge Ruby on Rails?

� ¿Cómo es un desarrollo web?

� Limitaciones de Tiempo

� Limitaciones de Personas

� Limitaciones de Distancia

� Limitaciones Económicas

� Limitaciones de Recursos

¡Necesitamos atacar nuestras limitaciones!

Confidentiel04/10/20067

¿Por qué surge Ruby on Rails?

Proyecto “Lateral”

Menos Personas

Menos Tiempo

Menos Presupuesto

Más Creatividad

Menos Código

Menos Errores

Más Productivo

Confidentiel04/10/20068

¿Por qué surge Ruby on Rails?

Del Producto al FrameworkProblemas reales, Soluciones reales

Confidentiel04/10/20069

¿Por qué surge Ruby on Rails?

Realbasado en necesidades reales

DRYeliminando tareas repetitivas

COCadoptando convenciones

Ágilabierto a cambios en desarrollo

Confidentiel04/10/200610

¿Por qué surge Ruby on Rails?

Filosofía del diseño de producto …

Confidentiel04/10/200611

¿Por qué surge Ruby on Rails?

¡Comienza por la interfaz!

Una especificación funcional no es funcional

Ni es clara, ni describe lo que quieres

Confidentiel04/10/200612

¿Por qué surge Ruby on Rails?

¡Comienza por la Experiencia de Usuario!

Diseña

Prototipa

Experimenta

Cambia

Aclara y repite

Confidentiel04/10/200613

¿Por qué surge Ruby on Rails?

Get Real!

No se puede hacer clic en

papel o en diagramas

Confidentiel04/10/200614

¿Por qué surge Ruby on Rails?

“Ruby on Rails es un avance en la reducción de barreras de entrada a la programación. Potentes aplicaciones web que antes podrían tardar semanas o meses en ser desarrolladas pueden ser creadas en cuestión de días.”

-Tim O'Reilly, Fundador de O'Reilly Media

Confidentiel04/10/200615

Índice

¿Por qué surge Ruby on Rails?

¿Quiénes usan Ruby on Rails?

Ruby el Corazón de Rails

Ruby on Rails, el desarrollo ágil

¿Por donde empiezo?

Confidentiel04/10/200616

¿Quiénes usan Ruby on Rails?

“El progreso y el desarrollo son imposibles si uno sigue haciendo las

cosas tal como siempre las ha hecho.”

Wayne W. Dyer

Confidentiel04/10/200617

¿Quiénes usan Ruby on Rails?

Twitter

Confidentiel04/10/200618

¿Quiénes usan Ruby on Rails?

La Coctelera

Confidentiel04/10/200619

¿Quiénes usan Ruby on Rails?

Jazztelia

Confidentiel04/10/200620

¿Quiénes usan Ruby on Rails?

Yellow Pages

Confidentiel04/10/200621

¿Quiénes usan Ruby on Rails?

43 things

Confidentiel04/10/200622

¿Quiénes usan Ruby on Rails?

Tractis

Confidentiel04/10/200623

Índice

¿Por qué surge Ruby on Rails?

¿Quiénes usan Ruby on Rails?

Ruby el Corazón de Rails

Ruby on Rails, el desarrollo ágil

¿Por donde empiezo?

Confidentiel04/10/200624

Ruby el Corazón de Rails

“Quien no ha probado lo amargo,

no sabe lo que es dulce”

PROVERBIO ALEMÁN

Confidentiel04/10/200625

Ruby el Corazón de Rails

� Los idiomas influyen (¿determinan?) la manera de pensar de las personas

Ruby• Cercano a nuestra forma de pensar

• Lo cual da una experiencia mejor

• ¡Es divertido!

• Te hace sentir inteligente

�Los lenguajes, la de los programadores

Confidentiel04/10/200626

Ruby el Corazón de Rails

Ruby: lenguaje de programación orientado a objetos

Basado en lenguaje natural

Ayuda al pensamiento humano

Usable: fácil de aprender

Eficiente: menos líneas de código

Comunidad muy activa

Felicidad: mejora la experiencia del programador

Confidentiel04/10/200627

Ruby el Corazón de Rails

La estética del diseño japonés

Foco en factores humanos

Minimalista

Principio de la menor sorpresa� Principio supremo en el diseño de Ruby� Hace felices a los programadores� Hace Ruby mas fácil de aprender

Principio de lo sucinto• No malgastar tiempo en ficheros de

configuración, getters, setters, etc.• Cuanto mas rápido programas, más consigues• Less Code: menos código, menos errores,

menor coste de mantenimiento

Confidentiel04/10/200628

Ruby el Corazón de Rails

Orientado a Objetos

TODAS las clases heredan de Object, incluso Class

NO hay primitivas

Ruby usa herencia simple (herencia múltiple ���� mixings)

Los módulos añaden comportamientos a las clases

Los operadores ‘+’ y ‘-’ son métodos

Confidentiel04/10/200629

Ruby el Corazón de Rails

Lenguaje Dinámico

No hay diferencia entre ‘tiempo de compilación’ y ‘tiempo de ejecución’

Hasta los tipos básicos, como Class u Object

Se pueden crear y modificar clases, redefinir o añadir métodos, en cualquier momento

Confidentiel04/10/200630

Índice

¿Por qué surge Ruby on Rails?

¿Quiénes usan Ruby on Rails?

Ruby el Corazón de Rails

Ruby on Rails, el desarrollo ágil

¿Por donde empiezo?

Confidentiel04/10/200631

Ruby on Rails, el desarrollo ágil

“Se debe hacer todo tan sencillo como sea posible, pero no más sencillo.”

Albert Einstein

Confidentiel04/10/200632

Ruby on Rails, el desarrollo ágil

¿Qué es Ruby On Rails?

“Ruby on Rails (RoR) es un entorno de desarrollo web de código abierto que está optimizado para la felicidad de los programadores y para la productividad sostenible. Permite escribir un código bello al favorecer la convención sobre la configuración.”

-- www.rubyonrails.org

Confidentiel04/10/200633

Ruby on Rails, el desarrollo ágil

Principios de Ruby on Rails

� DRY: Don’t Repeat Yourself (Once and Only Once)

� Cada cosa en su sitio

� Reducir duplicaciones en código, reduce posibilidad de errores

� COC: Convention Over Configuration

� El desarrollador sólo necesita definir configuraciones no convencionales

� Menor trabajo de desarrollo (scaffolding)

� Hace las aplicaciones web más sencillas de entender

Confidentiel04/10/200634

Ruby on Rails, el desarrollo ágil

Nativo Web

� Desde la web para la web... con todas las consecuencias:

� Separación limpia presentación (Vista) negocio (Controlador) �

� URLs limpias (“tecno-agnósticas”, usables, indexables...) �

� El interfaz es el producto: AJAX, RJS, conexión con Flash (RIA)...

� Conectividad. Orientado a la “Web de Datos”: RSS, Web Services, SOAP, REST,...

Confidentiel04/10/200635

Ruby on Rails, el desarrollo ágil

¿Qué tiene de especial?

� Mejores prácticas “empaquetadas”

� Diseñado para la “felicidad” del programador

� Felicidad + Motivación = Productividad

� Entorno de tests y pruebas incluido

� Flexibilidad ante los cambios

� Velocidad de desarrollo (agilidad)�

� Belleza del código

Confidentiel04/10/200636

Ruby on Rails, el desarrollo ágil

Un sitio para cada cosa

AplicaciónControladores

ModelosVistas

Público

Confidentiel04/10/200637

Ruby on Rails, el desarrollo ágil

3 entornos integrados

Confidentiel04/10/200638

Ruby on Rails, el desarrollo ágil

MVC (Modelo Vista Controlador) �

Confidentiel04/10/200639

Ruby on Rails, el desarrollo ágil

MVC (Modelo Vista Controlador) �

�Modelo: Representación específica de la información. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos.

�Vista: Presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.

�Controlador: Responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista.

Confidentiel04/10/200640

Ruby on Rails, el desarrollo ágil

MVC (Modelo Vista Controlador) �

Confidentiel04/10/200641

� Recibe las peticiones HTTP del usuario

� Modifica, si es necesario, el modelo según la petición

� Prepara la información a mostrar

� Selecciona plantilla (Vista) para presentar resultados o gestionar el diálogo

Ruby on Rails, el desarrollo ágil

ControladorAction Controller

Confidentiel04/10/200642

Ruby on Rails, el desarrollo ágil

� Representa las tablas en la base de datos

� Declaración en los modelos, limpia y legible

� No es necesario indicar nombre de tablas

� Relacionados entre sí de manera predefinida

� Convenciones para reducir al mínimo el código

� ...aunque todo se puede personalizar, claro

ModeloActive Record

Confidentiel04/10/200643

Ruby on Rails, el desarrollo ágil

� Capa de presentación de la aplicación� Plantillas generales (layouts)

� Escritas en Ruby (rhtml)

� Definen el aspecto base de las páginas que compondrán el sitio o aplicación web

� No afecta negativamente a la accesibilidad web

� XML, RSS en la vista

� Plantillas rxml

� Plantillas parciales (partials)

� Reutilización de fragmentos de plantillas (includes) �

VistaAction View

Confidentiel04/10/200644

Ruby on Rails, el desarrollo ágil

� Las Migraciones son maneras de modificar esquemas de BD desde Rails

� Se definen en clases autocontenidas

� Puden ser introducidas en el sistema de control de versiones

� Se pueden efectuar las siguientes operaciones:� create_table

� drop_table

� rename_table

� add_column

� rename_column

� change_column

� remove_column

� add_index

� remove_index

ModeloMigraciones (I)

Confidentiel04/10/200645

Ruby on Rails, el desarrollo ágil

� Ejemplo: create_users.rb class CreateUsers < ActiveRecord::Migrationdef self.up

create_table :users do |t|t.column :id, :integert.column :username, :stringt.column :password_salt, :stringt.column :password_hash, :stringt.column :email, :stringt.column :created_at, :datetime

endenddef self.down

drop_table :usersend

end

� rake db:migrate

ModeloMigraciones (II)

Confidentiel04/10/200646

Ruby on Rails, el desarrollo ágil

� Scaffold = Andamio

� Crear una estructura inicial de la web

� Avance rápido

� Pruebas desde el primer momento del modelo y el controlador

M V C

LibreríasRuby

LibreríasJavaScript

Tests integrados

S C A F F O L D I N G

Scaffolding

Confidentiel04/10/200647

Índice

¿Por qué surge Ruby on Rails?

¿Quiénes usan Ruby on Rails?

Ruby el Corazón de Rails

Ruby on Rails, el desarrollo ágil

¿Por donde empiezo?

Confidentiel04/10/200648

¿Por donde empiezo?

“No hay que empezar siempre por la noción primera de las cosas que se

estudian, sino por aquello que puede facilitar el aprendizaje.”

Aristóteles

Confidentiel04/10/200649

¿Por donde empiezo?

� Lenguaje Rails:

� http://www.ruby-lang.org

� Ruby on Rails:

� http://www.rubyonrails.org/

� http://sobrerailes.com

� http://www.conferenciarails.org/

Recommended