1) El documento discute los conceptos clave de Ruby y Ruby on Rails, incluyendo que Ruby es un lenguaje de programación dinámico y orientado a objetos. 2) Explica que Rails sigue los principios de "No repitas tu mismo" y "Convención sobre configuración" para hacer el desarrollo web más simple y directo. 3) Describe la arquitectura MVC de Rails y cómo separa las preocupaciones de modelo, vista y controlador.
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Presentacion Ruby on Rails CTIC-Cusco2007
1. I Congreso de Tecnologías de Información y Comunicaciones
Cusco 2007
2. ¿Qué es lo principal (por no decir
(por
primero) que piensan al momento
primero)
de desarrollar una aplicación,
además de la funcionalidad?
¿Orientación a Objetos?
¿Diagrama de clases?
¿UML?
¿Lo podremos hacer? ¿Interfaz Grafica?
¿Cuánto nos pagaran? ¿Documentación?
¿La base de datos?
3. ¿Qué es lo principal (por no decir
(por
primero) que piensan al momento
primero)
de desarrollar una aplicación,
además de la funcionalidad?
¿Orientación a Objetos?
¿Diagrama de clases?
¿UML?
¿Lo podremos hacer? ¿Interfaz Grafica?
¿Documentación?
¿UML?
¿La base de datos?
13. Ruby y Rails
Ruby
Creado por YUKIHIRO MATSUMOTO en los 90’s
o
Interpretado
o
Dinámico
o
Completamente Orientado a Objetos
o
14. Ruby y Rails
Ruby
Cercano a nuestra forma de pensar
o
Lo cual da una experiencia mejor
o
$> ¡Fácil!
Te hace sentir inteligente
o
¡Fácil!
¡Fácil! ¡Es divertido!
o
¡Fácil!
¡Fácil!
$>
16. Ruby y Rails
Ruby on Rails
Framework de desarrollo web basado en Ruby
o
Creado por “David Heinemeier Hanson” (37Signals)
o
Extraído (en principio) de su aplicación Basecamp
o
Liberado en 2005 (¡un ascenso meteórico!)
o
17. Ruby y Rails
La “Filosofía” de RoR
Don’t Repeat Yourself
Modelo - Vista - Controlador
(No te repitas)
Convention Over Configuration
(Convención sobre Configuración)
18. Ruby y Rails
La “Filosofía” de RoR
o La repetición innecesaria de conocimiento es fuente de
errores (incongruencias)
o Y además, es un rollo
Ejemplo
¿Definir atributos de una clase?
¡¡¡ Si ya los dijimos al crear la tabla !!!
19. Ruby y Rails
La “Filosofía” de RoR
o En vez de requerir innumerables archivos de configuración,
Rails propone defaults razonables
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
20. Ruby y Rails
La “Filosofía” de RoR
Modelo Datos: ActiveRecord
Controlador Lógica de la aplicación: ActionController
Vista Interfaz (web) de usuario: ActionView
Ventajas de la separación
Código limpio
DRY
Facilita el trabajo en equipo
21.
22. 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
23. 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
tabla personas
Crear una clase (cargar una tabla)
class Persona < ActiveRecord::Base
end
25. o CRUD
o
o Read
o Update
o Delete
Crear
p = Persona.new p = Persona.create(
p.nombre = “Juanca” :nombre => “Juanca”,
p.ciudad = “Cusco” :ciudad => “Cusco”)
p.save
26. 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”)
27. o CRUD
o Create
o Read
o
o Delete
Actualizar/Modificar
juanca = Persona.find_by_nombre(“juanca”)
juanca.ciudad = “Trujillo”
juanca.save
28. o CRUD
o Create
o Read
o Update
o
Borrar
juanca = Persona.find_by_nombre(“Juanca”)
juanca.destroy
29. o o
o uno a uno Lo declaramos en la clase y Rails, a
o uno a muchos través convenciones, se encarga de
o muchos a muchos todo
Ejemplo
class Persona < ActiveRecord::Base
belongs_to :grupo
end
class Grupo < ActiveRecord::Base
has_many :personas
end
# “CTIC-2007”
juanca.grupo.nombre
# “juanca”
ctic.personas[0].nombre
32. o La “C” de MVC: el Controlador
o Tareas
o Procesa la URL solicitada
o Dirige la petición al controlador correspondiente
o El controlador realiza la tarea correspondiente, solicitando al
Modelo los datos que necesite
o Renderiza la plantilla (la Vista)
33. 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)
35. 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/>
36. 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 Podemos definir las nuestras propias
Ejemplo
link_to(‘Ver’, :controller => ‘personas’,
:action => ‘show’, :id => juan.id)
<a href=quot;/personas/show/7quot;>Ver</a>