Post on 18-Dec-2014
description
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?
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/