SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
I Congreso de Tecnologías de Información y Comunicaciones
Cusco 2007
¿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?
¿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?
Java   Ruby
I Congreso de Tecnologías de Información y Comunicaciones
Cusco 2007
Ruby y Rails
        Ruby
Ruby y Rails
                                                Ruby




    Creado por YUKIHIRO MATSUMOTO en los 90’s
o
    Interpretado
o
    Dinámico
o
    Completamente Orientado a Objetos
o
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!
$>
Ruby y Rails
   Ruby on Rails
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
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)
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 !!!
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
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
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
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
o
    o Create
    o Read
    o Update
    o Delete
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
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”)
o CRUD
       o Create
       o Read
       o
       o Delete



Actualizar/Modificar
juanca = Persona.find_by_nombre(“juanca”)
juanca.ciudad = “Trujillo”
juanca.save
o CRUD
       o Create
       o Read
       o Update
       o



Borrar
juanca = Persona.find_by_nombre(“Juanca”)
juanca.destroy
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
Arquitectura
Modelo – Vista - Controlador
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)
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)
Arquitectura
Modelo – Vista - Controlador
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/>
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>
Ahora viene lo mejor…
Todos abordo
Expositor: Juan Carlos Pompilla Ttito
   Email: juancarlitos.pompilla@gmail.com
     Blog: rubyonrails-cusco.blogspot.com

Más contenido relacionado

Similar a Presentacion Ruby on Rails CTIC-Cusco2007

Introducción a RubyOnRails
Introducción a RubyOnRailsIntroducción a RubyOnRails
Introducción a RubyOnRailsPablo Marrero
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Airespeterpunk
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on railsJoski Jk
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on RailsJoski Jk
 
El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2ferdinand13
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php AdwaAndres Karp
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slidesmundojava
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsFreelancer
 
Programa en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier RamirezPrograma en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier Ramirezjavier ramirez
 
Javier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins PdfJavier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins Pdfjavier ramirez
 
Rails Plugins. Javier Ramirez
Rails Plugins. Javier RamirezRails Plugins. Javier Ramirez
Rails Plugins. Javier Ramirezjavier ramirez
 
El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7Ymbra
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLJosé Alfredo Ramírez
 
Joserojas Web 2.0
Joserojas Web 2.0Joserojas Web 2.0
Joserojas Web 2.0Jose Rojas
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 

Similar a Presentacion Ruby on Rails CTIC-Cusco2007 (20)

Introducción a RubyOnRails
Introducción a RubyOnRailsIntroducción a RubyOnRails
Introducción a RubyOnRails
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos AiresPresentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
Presentación Ruby on Rails en Softare Freedom Day 09 Buenos Aires
 
Ruby on rails
Ruby on railsRuby on rails
Ruby on rails
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2El Ferrocarril Contra Los Arboles Muertos2
El Ferrocarril Contra Los Arboles Muertos2
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php Adwa
 
J2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos SlidesJ2 Ee Para Seres Humanos Slides
J2 Ee Para Seres Humanos Slides
 
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
Programa en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier RamirezPrograma en Rails como si Jugases con Lego. Javier Ramirez
Programa en Rails como si Jugases con Lego. Javier Ramirez
 
Javier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins PdfJavier Ramirez Rails Plugins Pdf
Javier Ramirez Rails Plugins Pdf
 
Rails Plugins. Javier Ramirez
Rails Plugins. Javier RamirezRails Plugins. Javier Ramirez
Rails Plugins. Javier Ramirez
 
2014 04 padrino
2014 04 padrino2014 04 padrino
2014 04 padrino
 
El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7El universo JavaScript en Drupal 7
El universo JavaScript en Drupal 7
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
 
Joserojas Web 2.0
Joserojas Web 2.0Joserojas Web 2.0
Joserojas Web 2.0
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Último (19)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
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?
  • 4. Java Ruby
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. I Congreso de Tecnologías de Información y Comunicaciones Cusco 2007
  • 11.
  • 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! $>
  • 15. Ruby y Rails Ruby on Rails
  • 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
  • 24. o o Create o Read o Update o Delete
  • 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
  • 30.
  • 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>
  • 37. Ahora viene lo mejor…
  • 39. Expositor: Juan Carlos Pompilla Ttito Email: juancarlitos.pompilla@gmail.com Blog: rubyonrails-cusco.blogspot.com