Presentacion Ruby on Rails CTIC-Cusco2007

39
I Congreso de Tecnologías de Información y Comunicaciones Cusco 2007

description

I Presentacion de Ruby on Rails en la ciudad del Cusco, en el congreso de TIC 2007

Transcript of Presentacion Ruby on Rails CTIC-Cusco2007

Page 1: Presentacion Ruby on Rails CTIC-Cusco2007

I Congreso de Tecnologías de Información y Comunicaciones

Cusco 2007

Page 2: Presentacion Ruby on Rails CTIC-Cusco2007

¿Qué es lo principal (¿Qué es lo principal (por no decir por no decir

primeroprimero) que piensan al momento ) que piensan al momento

de desarrollar una aplicación, de desarrollar una aplicación,

además de la funcionalidad?además de la funcionalidad?además de la funcionalidad?además de la funcionalidad?

¿Diagrama de clases?¿Orientación a Objetos?

¿Cuánto nos pagaran?

¿Interfaz Grafica?

¿UML?

¿Documentación?

¿La base de datos?

¿Lo podremos hacer?

Page 3: Presentacion Ruby on Rails CTIC-Cusco2007

¿Qué es lo principal (¿Qué es lo principal (por no decir por no decir

primeroprimero) que piensan al momento ) que piensan al momento

de desarrollar una aplicación, de desarrollar una aplicación,

además de la funcionalidad?además de la funcionalidad?además de la funcionalidad?además de la funcionalidad?

¿Diagrama de clases?¿Orientación a Objetos?

¿UML?

¿Interfaz Grafica?

¿UML?

¿Documentación?

¿La base de datos?

¿Lo podremos hacer?

Page 4: Presentacion Ruby on Rails CTIC-Cusco2007

Java Ruby

Page 5: Presentacion Ruby on Rails CTIC-Cusco2007
Page 6: Presentacion Ruby on Rails CTIC-Cusco2007
Page 7: Presentacion Ruby on Rails CTIC-Cusco2007
Page 8: Presentacion Ruby on Rails CTIC-Cusco2007
Page 9: Presentacion Ruby on Rails CTIC-Cusco2007
Page 10: Presentacion Ruby on Rails CTIC-Cusco2007

I Congreso de Tecnologías de Información y Comunicaciones

Cusco 2007

Page 11: Presentacion Ruby on Rails CTIC-Cusco2007
Page 12: Presentacion Ruby on Rails CTIC-Cusco2007

Ruby y RailsRuby

Page 13: Presentacion Ruby on Rails CTIC-Cusco2007

Ruby

o Creado por YUKIHIRO MATSUMOTO en los 90’s

o Interpretado

Ruby y Rails

o Dinámico

o Completamente Orientado a Objetos

Page 14: Presentacion Ruby on Rails CTIC-Cusco2007

Ruby

$> ¡Fácil!

o Cercano a nuestra forma de pensar

o Lo cual da una experiencia mejor

Te hace sentir inteligente

Ruby y Rails

$> ¡Fácil!¡Fácil!¡Fácil!¡Fácil!¡Fácil!

$>

o Te hace sentir inteligente

o ¡Es divertido!

Page 15: Presentacion Ruby on Rails CTIC-Cusco2007

Ruby on RailsRuby y Rails

Page 16: Presentacion Ruby on Rails CTIC-Cusco2007

Ruby on RailsRuby y Rails

o Framework de desarrollo web basado en Ruby

o Creado por “David Heinemeier Hanson” (37Signals)

Basecampo Extraído (en principio) de su aplicación Basecamp

o Liberado en 2005 (¡un ascenso meteórico!)

Page 17: Presentacion Ruby on Rails CTIC-Cusco2007

La “Filosofía” de RoR

Ruby y Rails

Modelo - Vista - Controlador Don’t Repeat YourselfModelo - Vista - Controlador Don’t Repeat Yourself

(No te repitas)

Convention Over Configuration

(Convención sobre Configuración)

Page 18: Presentacion Ruby on Rails CTIC-Cusco2007

La “Filosofía” de RoR

Ruby y Rails

o La repetición innecesaria de conocimiento es fuente de errores (incongruencias)

o Y además, es un rollo �o Y además, es un rollo �

Ejemplo

� ¿Definir atributos de una clase?

� ¡¡¡ Si ya los dijimos al crear la tabla !!!

Page 19: Presentacion Ruby on Rails CTIC-Cusco2007

La “Filosofía” de RoR

Ruby y Rails

o En vez de requerir innumerables archivos de configuración, Rails propone defaults razonables

o Que, por supuesto, podemos cambiar (si lo necesitamos)o Que, por supuesto, podemos cambiar (si lo necesitamos)

Ejemplo

� Clase Person ↔ tabla People

� Se puede forzar: set_table_name ´Personas´

� Rails establece una estructura de directorios relativamente rígida

� De esta forma, puede encontrar las cosas a través de convenciones

Page 20: Presentacion Ruby on Rails CTIC-Cusco2007

La “Filosofía” de RoR

Ruby y Rails

Modelo Datos: ActiveRecord

Controlador Lógica de la aplicación: ActionController

Ventajas de la separación

� Código limpio

� DRY

� Facilita el trabajo en equipo

Controlador Lógica de la aplicación: ActionController

Vista Interfaz (web) de usuario: ActionView

Page 21: Presentacion Ruby on Rails CTIC-Cusco2007
Page 22: Presentacion Ruby on Rails CTIC-Cusco2007

Arquitectura

Modelo – Vista - Controlador

1. El navegador manda una petición

2. El controlador interactúa con el Modelo

3. El controlador invoca una Vista

4. La vista se encarga de formar toda la pagina para el navegador

Page 23: Presentacion Ruby on Rails CTIC-Cusco2007

o La “M” de MVC: el Modelo

o Capa ORM: manejo de base de datos con orientación a objetos

o Las tablas son clases

o Las filas son objetos

o Las columnas son atributos

o Sin configuración: todo por convención

o persona.nombre => columna nombre de una fila de la o persona.nombre => columna nombre de una fila de la

tabla personas

Crear una clase (cargar una tabla)

class Persona < ActiveRecord::Base

end

Page 24: Presentacion Ruby on Rails CTIC-Cusco2007

o

o Create

o Read

o Update

o Delete

Page 25: Presentacion Ruby on Rails CTIC-Cusco2007

o CRUD

o

o Read

o Update

o Delete

Crear

p = Persona.new

p.nombre = “Juanca”

p.ciudad = “Cusco”

p.save

p = Persona.create(

:nombre => “Juanca”,

:ciudad => “Cusco”)

Page 26: Presentacion Ruby on Rails CTIC-Cusco2007

o CRUD

o Create

o

o Update

o Delete

Leer/Buscar

persona = Persona.find(3)

personas = Persona.find(

:all,

:conditions =>”ciudad = ‘Cusco’”)

juanca = Persona.find_by_nombre(“Juanca”)

Page 27: Presentacion Ruby on Rails CTIC-Cusco2007

o CRUD

o Create

o Read

o

o Delete

Actualizar/Modificar

juanca = Persona.find_by_nombre(“juanca”)

juanca.ciudad = “Trujillo”

juanca.save

Page 28: Presentacion Ruby on Rails CTIC-Cusco2007

o CRUD

o Create

o Read

o Update

o

Borrar

juanca = Persona.find_by_nombre(“Juanca”)

juanca.destroy

Page 29: Presentacion Ruby on Rails CTIC-Cusco2007

o

o uno a uno

o uno a muchos

o muchos a muchos

o

Lo declaramos en la clase y Rails, a

través convenciones, se encarga de

todo

Ejemplo

class Persona < ActiveRecord::Baseclass Persona < ActiveRecord::Base

belongs_to :grupo

end

class Grupo < ActiveRecord::Base

has_many :personas

end

juanca.grupo.nombre # “CTIC-2007”

ctic.personas[0].nombre # “juanca”

Page 30: Presentacion Ruby on Rails CTIC-Cusco2007
Page 31: Presentacion Ruby on Rails CTIC-Cusco2007

Arquitectura

Modelo – Vista - Controlador

Page 32: Presentacion Ruby on Rails CTIC-Cusco2007

o La “C” de MVC: el Controlador

o Tareas

o Procesa la URL solicitada

o Dirige la petición al controlador correspondienteo

o El controlador realiza la tarea correspondiente, solicitando al

Modelo los datos que necesite

o Renderiza la plantilla (la Vista)

Page 33: Presentacion Ruby on Rails CTIC-Cusco2007

o ActionController usa la ruta para decidir:

o Que controlador se usará

o Que método del mismo se ejecutara

o Que parámetros se le pasaran (array params)

Page 34: Presentacion Ruby on Rails CTIC-Cusco2007

Arquitectura

Modelo – Vista - Controlador

Page 35: Presentacion Ruby on Rails CTIC-Cusco2007

o La “V” de MVC: la Vista

o En principio, hay una plantilla por método

o Se encarga de convertir los datos que le pasa el controlador en el

HTML que se servirá al navegador

RHTML

HTML con código Ruby:<p>Son las <%= Time.now %><p/>

Page 36: Presentacion Ruby on Rails CTIC-Cusco2007

o Helpers

o Funciones que nos ahorran escribir HTML

o Generación de URLs

o Generación de formularios

o Formateo de datos

o Paginación

o …o …

o Podemos definir las nuestras propias

Ejemplo

link_to(‘Ver’, :controller => ‘personas’,

:action => ‘show’, :id => juan.id)

<a href="/personas/show/7">Ver</a>

Page 37: Presentacion Ruby on Rails CTIC-Cusco2007

Ahora viene lo mejor…

Page 38: Presentacion Ruby on Rails CTIC-Cusco2007

Todos abordo

Page 39: Presentacion Ruby on Rails CTIC-Cusco2007

Expositor: Expositor: Juan Carlos Pompilla Ttito

Email: Email: [email protected]: Email: [email protected]

Blog: Blog: rubyonrails-cusco.blogspot.com