49
Confidentiel Seminario I:

Ruby On Rails (Parte 1. Introducción)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Ruby On Rails (Parte 1. Introducción)

Confidentiel

Seminario I:

Page 2: Ruby On Rails (Parte 1. Introducción)

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?

Page 3: Ruby On Rails (Parte 1. Introducción)

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?

Page 4: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/20064

¿Por qué surge Ruby on Rails?

“Convertir las debilidades en fortalezas”

Sun Tzu. El arte de la guerra

Page 5: Ruby On Rails (Parte 1. Introducción)

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

Page 6: Ruby On Rails (Parte 1. Introducción)

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!

Page 7: Ruby On Rails (Parte 1. Introducción)

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

Page 8: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/20068

¿Por qué surge Ruby on Rails?

Del Producto al FrameworkProblemas reales, Soluciones reales

Page 9: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/20069

¿Por qué surge Ruby on Rails?

Realbasado en necesidades reales

DRYeliminando tareas repetitivas

COCadoptando convenciones

Ágilabierto a cambios en desarrollo

Page 10: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200610

¿Por qué surge Ruby on Rails?

Filosofía del diseño de producto …

Page 11: Ruby On Rails (Parte 1. Introducción)

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

Page 12: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200612

¿Por qué surge Ruby on Rails?

¡Comienza por la Experiencia de Usuario!

Diseña

Prototipa

Experimenta

Cambia

Aclara y repite

Page 13: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200613

¿Por qué surge Ruby on Rails?

Get Real!

No se puede hacer clic en

papel o en diagramas

Page 14: Ruby On Rails (Parte 1. Introducción)

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

Page 15: Ruby On Rails (Parte 1. Introducción)

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?

Page 16: Ruby On Rails (Parte 1. Introducción)

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

Page 17: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200617

¿Quiénes usan Ruby on Rails?

Twitter

Page 18: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200618

¿Quiénes usan Ruby on Rails?

La Coctelera

Page 19: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200619

¿Quiénes usan Ruby on Rails?

Jazztelia

Page 20: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200620

¿Quiénes usan Ruby on Rails?

Yellow Pages

Page 21: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200621

¿Quiénes usan Ruby on Rails?

43 things

Page 22: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200622

¿Quiénes usan Ruby on Rails?

Tractis

Page 23: Ruby On Rails (Parte 1. Introducción)

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?

Page 24: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200624

Ruby el Corazón de Rails

“Quien no ha probado lo amargo,

no sabe lo que es dulce”

PROVERBIO ALEMÁN

Page 25: Ruby On Rails (Parte 1. Introducció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

Page 26: Ruby On Rails (Parte 1. Introducción)

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

Page 27: Ruby On Rails (Parte 1. Introducción)

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

Page 28: Ruby On Rails (Parte 1. Introducción)

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

Page 29: Ruby On Rails (Parte 1. Introducción)

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

Page 30: Ruby On Rails (Parte 1. Introducción)

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?

Page 31: Ruby On Rails (Parte 1. Introducción)

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

Page 32: Ruby On Rails (Parte 1. Introducción)

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

Page 33: Ruby On Rails (Parte 1. Introducción)

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

Page 34: Ruby On Rails (Parte 1. Introducción)

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,...

Page 35: Ruby On Rails (Parte 1. Introducción)

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

Page 36: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200636

Ruby on Rails, el desarrollo ágil

Un sitio para cada cosa

AplicaciónControladores

ModelosVistas

Público

Page 37: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200637

Ruby on Rails, el desarrollo ágil

3 entornos integrados

Page 38: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200638

Ruby on Rails, el desarrollo ágil

MVC (Modelo Vista Controlador) �

Page 39: Ruby On Rails (Parte 1. Introducción)

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.

Page 40: Ruby On Rails (Parte 1. Introducción)

Confidentiel04/10/200640

Ruby on Rails, el desarrollo ágil

MVC (Modelo Vista Controlador) �

Page 41: Ruby On Rails (Parte 1. Introducción)

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

Page 42: Ruby On Rails (Parte 1. Introducción)

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

Page 43: Ruby On Rails (Parte 1. Introducción)

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

Page 44: Ruby On Rails (Parte 1. Introducción)

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)

Page 45: Ruby On Rails (Parte 1. Introducción)

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)

Page 46: Ruby On Rails (Parte 1. Introducción)

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

Page 47: Ruby On Rails (Parte 1. Introducción)

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?

Page 48: Ruby On Rails (Parte 1. Introducción)

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

Page 49: Ruby On Rails (Parte 1. Introducción)

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/