Presentacion Ruby on Rails CTIC-Cusco2007
-
Upload
juancapompilla -
Category
Technology
-
view
1.560 -
download
0
description
Transcript of Presentacion Ruby on Rails CTIC-Cusco2007
![Page 1: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/1.jpg)
I Congreso de Tecnologías de Información y Comunicaciones
Cusco 2007
![Page 2: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/2.jpg)
¿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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/3.jpg)
¿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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/4.jpg)
Java Ruby
![Page 5: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/5.jpg)
![Page 6: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/6.jpg)
![Page 7: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/7.jpg)
![Page 8: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/8.jpg)
![Page 9: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/9.jpg)
![Page 10: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/10.jpg)
I Congreso de Tecnologías de Información y Comunicaciones
Cusco 2007
![Page 11: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/11.jpg)
![Page 12: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/12.jpg)
Ruby y RailsRuby
![Page 13: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/13.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/14.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/15.jpg)
Ruby on RailsRuby y Rails
![Page 16: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/16.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/17.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/18.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/19.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/20.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/21.jpg)
![Page 22: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/22.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/23.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/24.jpg)
o
o Create
o Read
o Update
o Delete
![Page 25: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/25.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/26.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/27.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/28.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/29.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/30.jpg)
![Page 31: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/31.jpg)
Arquitectura
Modelo – Vista - Controlador
![Page 32: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/32.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/33.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/34.jpg)
Arquitectura
Modelo – Vista - Controlador
![Page 35: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/35.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/36.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/37.jpg)
Ahora viene lo mejor…
![Page 38: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/38.jpg)
Todos abordo
![Page 39: Presentacion Ruby on Rails CTIC-Cusco2007](https://reader034.fdocument.pub/reader034/viewer/2022042607/558585afd8b42ab2148b4e11/html5/thumbnails/39.jpg)
Expositor: Expositor: Juan Carlos Pompilla Ttito
Email: Email: [email protected]: Email: [email protected]
Blog: Blog: rubyonrails-cusco.blogspot.com