SlideShare a Scribd company logo
1 of 35
Download to read offline
Agustín Cuenca

Ruby On Rails
ASPGems


7.nov.2007
elevator pitch

 hacemos software que en lugar de
hacer cada vez mas cosas hace menos,
 pero las importantes, usando las más
 avanzadas técnicas y métodos de
        desarrollo de software
misión


  convertir el software

    en una comodity
nuestra visión: conjunción de elementos

                 Principio
               Menos es mas




                               Metodología
     SAS                        SCRUM




               Herramientas
               Ruby on Rails
menos es más
  todo lo que alguien usa alguna vez


                  vs


 solo lo que usa todo el mundo siempre
nuestros proyectos
• alta productividad
• velocidad de desarrollo
• flexibilidad                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente-antevenio.gif




                                                                                                                              file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente3.gif                                                     file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente5.gif




file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente2.gif




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente1.gif




       file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente4.gif




                                                                                                                                                                                                                                                         file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/MiRubibn.gif




                                                                                                                              file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente-isea.gif                                                                                                                                                                        file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente-sepomo.gif
software as a service
Ruby y Ruby on Rails
 • Ruby: un lenguaje de programación
 • Ruby on Rails: un “open source web
   application framework“ escrito en Ruby
   para hacer aplicaciones MVC.

 • Combinadas consiguen:
 – Alta productividad
 – Flexibilidad ante los cambios
 – Velocidad de desarrollo
Contacto
Dirección:
Isla Graciosa nº 2, Despachos 34 y 35,
28700 San Sebastián de los Reyes,
Madrid


Teléfonos :
(+34) 91 658 73 32
E-mail: info@aspgems.com
Ruby
¿Por qué Ruby?

• Permite escribir código fácil de
  entender en menos lineas
• Es free soft
• Extensibilidad
• Tiene una comunidad muy
  activa
Principios de Ruby
     La estética del diseño japonés
       Foco en los factores humanos
       Principio de la menor sorpresa
       Principio de lo sucinto (breve, compendioso)
Principio de la menor
  sorpresa
                       Ejemplos
• El principio
  supremo en el            ¿De que clase es un objeto?
                       •
  diseño de Ruby           o.class
• Hace felices a los       ¿Se escribe Array#size o
                       •
  programadores            Array#length?
                           Son dos alias del mismo método
• Hace Ruby mas
  fácil de aprender        ¿Diferencias entre vectores?
                       •
                           diff = ary1 – ary2
                           union = ary1 + ary2
Principio de lo sucinto
• O lo que es lo mismo el del menor
  esfuerzo:
• No queremos malgastar tiempo,
  – Especialmente en ficheros de configuración,
    getters, setters, etc.
• Cuanto mas rápido programas más
  consigues
• Menos código implica menos errores
Ruby es completamente
 orientado a objetos
• Todas las clases derivadas de Object incluyendo
  Class (como en Java) pero no hay primitivas (para
  nada como Java)
• Ruby usa herencia simple, (la herencia múltiple se consigue con
  mixings)

• Los módulos permiten añadir comportamientos a
  las clases
• Reflexión es uno de los muchos mecanismos
  dinámicos del lenguaje
• Los operadores = o + son en realidad métodos
Convenios de escritura
• Encadenamiento de métodos
      print array.uniq.sort.reverse

• Los nombres de métodos admiten !(indica cambio) y ? (indica boolean)
       array.sort!

• Iteradores y bloques vs. Bucles
     files.each { |file| process(file) }

• Mayúsculas y minúsculas
    – Las Clases empiezan con mayúsculas
    – Las CONSTANTES siempre en mayúsculas
    – Todo lo demás: método o variable local.
    – Uso del_en lugar de MezclarMayusculasMinusculas
RAILS
• MVC
  – Modelo
  – Vista
  – Controlador
• Facilidades adicionales
¿Qué es Rails?
• Rails, o Ruby on Rails o RoR es:

• Framework de aplicaciones web de
  código abierto escrito en el
  lenguaje de programación Ruby,
  siguiendo el paradigma de la
  arquitectura Modelo-Vista-
  Controlador (MVC)
MVC:
                           Navegador




  Petición HTTP                        Respuesta HTTP




             Controlador                                   Vista
            Las acciones                                Las páginas




        MODELO
     Las entidades
                                                           BdD
Modelo




         20
Relaciones
• Los modelos (entidades) están
  relacionados entre si
• Hay varias relaciones definidas en
  Rails
  – has many, belongs to, has and
    belongs to, etc.
• Declaración en los modelos, limpia
  y legible
• Convenciones para reducir al
  mínimo el código..
  – ...aunque todo se puede personalizar,
    claro
Migraciones
• Expresan cambios en la base de
  datos
• Permiten actualizar fácilmente
  – Se crean nuevas migraciones con un
    script
  – Para actualizar: rake migrate
• Mecanismos de descripción de la
  migración:
  – ActiveRecord para los datos
  – create table, remove column, etc.
    para casos comunes
Observadores
• Permiten ejecutar operaciones
  relacionadas con los modelos
• Se especifica la lista de
  observadores de la aplicación
• Diferentes enganches: before
  validation, after create, before
  save, ...
VIEW




       24
Plantillas generales
• También se escriben en Ruby
• Permiten definir el aspecto base de
  las paginas
• Plantillas parciales
  – Para reutilizar trozos de plantillas
Helpers

    Etiquetas HTML
•
    Paginación
•
    Generación de Javascript
•
    Generación de URLs
•
    Operaciones comunes de texto
•
    Formato de números
•
    Generación de trozos de la pagina
•
    Medición de tiempos
•
Controlador




              27
Controlador
• Reciben las peticiones del usuario
• Modifican, si es necesario, el
  modelo según la petición
• Prepara la información a mostrar
• Selección la plantilla para:
  – presentar resultados
  – gestionar el diálogo
Filtros
• Permiten ejecutar código antes/después de las
  acciones
• Permiten saltarse las propias ejecuciones de las
  acciones
• Muy útiles para autenticación y para filtrado
  posterior
• Tres tipos:
   – before filter
   – after filter
   – around filter
Facilidades adicionales




                    30
Un entorno integrado
• Diferentes entornos de
  configuración
  – Permiten adaptar la aplicación al
    entorno y especificar los datos de
    conexión a la base de datos
• Valores de configuración:
  – development, production, test
• Diferentes bases de datos en
  desarrollo, producción o pruebas
Otras facilidades

• Mapping relacional integrado
• Sistema de mailing integrado
• Sistema de sindicación (rss)
  integrado
• Integración con AJAX y
  script.acul.us
• Templates RJS (DSL para
  gestión Ajax)
En nuestro piloto
    237 LOCs en helpers   • Autenticación, ABMC y
•
                            listados de:
    680 en controladores
•
                              – usuarios, centros,
    336 en modelos.
•
                                empleados
    Suman unas 1250 lineas.
•
                              – Cálculo de comisiones, el
                                forecast
                              – Subida y proceso de Excel,
                                generacion y descarga de
                                CSV,
                              – Toda la persistencia, uso
                                de Ajax en varios sitios,
                                etc., ...


       Además: no hay ni una sola linea de configuración XML.
Conclusión

    Simple
•
    Elegante
•
    Integrado
•
    Funciona
•
Contacto
Dirección:
Isla Graciosa nº 2, Despachos 34 y 35,
28700 San Sebastián de los Reyes,
Madrid


Teléfonos :
(+34) 629 222 222
E-mail: agustin@aspgems.com

More Related Content

Viewers also liked

Rencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtesRencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtesMorgane Conseil
 
ACTIVITÉS PHISIQUES
ACTIVITÉS PHISIQUESACTIVITÉS PHISIQUES
ACTIVITÉS PHISIQUESouchene
 
Diaporama 1 an Accueil de Jour Miribel
Diaporama 1 an Accueil de Jour MiribelDiaporama 1 an Accueil de Jour Miribel
Diaporama 1 an Accueil de Jour MiribelVSDS
 
Td10 (1)
Td10 (1)Td10 (1)
Td10 (1)Nemowat
 
Redes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisaRedes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisaJuan J. Merelo
 
What's up Digital #12 - by ELAN
What's up Digital #12 - by ELANWhat's up Digital #12 - by ELAN
What's up Digital #12 - by ELANAgence Elan
 
Test De La Banane
Test De La BananeTest De La Banane
Test De La Bananelili3472
 
I Xornadas TADEGa 2007
I Xornadas TADEGa 2007I Xornadas TADEGa 2007
I Xornadas TADEGa 2007cubanito
 
Alternativas del Partido Popular frente a la crisis
Alternativas del Partido Popular frente a la crisisAlternativas del Partido Popular frente a la crisis
Alternativas del Partido Popular frente a la crisisOrlando Suárez
 
Arte Chinesa com Gelo
Arte Chinesa com GeloArte Chinesa com Gelo
Arte Chinesa com Geloalex
 

Viewers also liked (17)

Rencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtesRencontre avec les propriétaires de locations meublées et de chambres d'hôtes
Rencontre avec les propriétaires de locations meublées et de chambres d'hôtes
 
ACTIVITÉS PHISIQUES
ACTIVITÉS PHISIQUESACTIVITÉS PHISIQUES
ACTIVITÉS PHISIQUES
 
Diaporama 1 an Accueil de Jour Miribel
Diaporama 1 an Accueil de Jour MiribelDiaporama 1 an Accueil de Jour Miribel
Diaporama 1 an Accueil de Jour Miribel
 
APLIC Modules
APLIC ModulesAPLIC Modules
APLIC Modules
 
Td10 (1)
Td10 (1)Td10 (1)
Td10 (1)
 
Redes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisaRedes sociales-en-un-rato-piiisa
Redes sociales-en-un-rato-piiisa
 
Cours5 enr
Cours5 enrCours5 enr
Cours5 enr
 
Modelo digital del proceso pedagógico
Modelo digital del proceso pedagógicoModelo digital del proceso pedagógico
Modelo digital del proceso pedagógico
 
What's up Digital #12 - by ELAN
What's up Digital #12 - by ELANWhat's up Digital #12 - by ELAN
What's up Digital #12 - by ELAN
 
Test De La Banane
Test De La BananeTest De La Banane
Test De La Banane
 
I Xornadas TADEGa 2007
I Xornadas TADEGa 2007I Xornadas TADEGa 2007
I Xornadas TADEGa 2007
 
Sistema de capas
Sistema de capasSistema de capas
Sistema de capas
 
Desdemicruz
DesdemicruzDesdemicruz
Desdemicruz
 
T Pfinal J Carzedda
T Pfinal J CarzeddaT Pfinal J Carzedda
T Pfinal J Carzedda
 
Problema 7
Problema 7Problema 7
Problema 7
 
Alternativas del Partido Popular frente a la crisis
Alternativas del Partido Popular frente a la crisisAlternativas del Partido Popular frente a la crisis
Alternativas del Partido Popular frente a la crisis
 
Arte Chinesa com Gelo
Arte Chinesa com GeloArte Chinesa com Gelo
Arte Chinesa com Gelo
 

Similar to 11 AgustíN Cuenca

Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Roberto Allende
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cdcampus party
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cdcampus party
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cdcampus party
 
Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.Agustín Sabater
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
04 taller-django
04 taller-django04 taller-django
04 taller-djangosamerscd
 
Puntos clave seleccion aplicaciones SaaS. Artículo - Luis Carrasco
Puntos clave seleccion aplicaciones SaaS. Artículo - Luis CarrascoPuntos clave seleccion aplicaciones SaaS. Artículo - Luis Carrasco
Puntos clave seleccion aplicaciones SaaS. Artículo - Luis CarrascoLuis Carrasco
 
Introduccion a core plot
Introduccion a core plotIntroduccion a core plot
Introduccion a core plotJorge Ortiz
 

Similar to 11 AgustíN Cuenca (20)

Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3
 
Atix13
Atix13Atix13
Atix13
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cd
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cd
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cd
 
Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.Adaptación de JMeter para la minería de datos de estructuras de páginas web.
Adaptación de JMeter para la minería de datos de estructuras de páginas web.
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
 
Atix13
Atix13Atix13
Atix13
 
ATIX13
ATIX13ATIX13
ATIX13
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
Welcome to Django
Welcome to DjangoWelcome to Django
Welcome to Django
 
Web Mining
Web MiningWeb Mining
Web Mining
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Html5
Html5Html5
Html5
 
04 taller-django
04 taller-django04 taller-django
04 taller-django
 
Ardora
ArdoraArdora
Ardora
 
Puntos clave seleccion aplicaciones SaaS. Artículo - Luis Carrasco
Puntos clave seleccion aplicaciones SaaS. Artículo - Luis CarrascoPuntos clave seleccion aplicaciones SaaS. Artículo - Luis Carrasco
Puntos clave seleccion aplicaciones SaaS. Artículo - Luis Carrasco
 
Atix20
Atix20Atix20
Atix20
 
Introduccion a core plot
Introduccion a core plotIntroduccion a core plot
Introduccion a core plot
 
Aprende programar-6330
Aprende programar-6330Aprende programar-6330
Aprende programar-6330
 

More from youlivek

Business 2.0
Business 2.0Business 2.0
Business 2.0youlivek
 
Empresa 2.0
Empresa 2.0Empresa 2.0
Empresa 2.0youlivek
 
Isaac Vidal y Joantxo Llantada
Isaac Vidal y Joantxo LlantadaIsaac Vidal y Joantxo Llantada
Isaac Vidal y Joantxo Llantadayoulivek
 
Paula Duran - derecho 2.0
Paula Duran - derecho 2.0Paula Duran - derecho 2.0
Paula Duran - derecho 2.0youlivek
 
José Uriarte - Administración Pública
José Uriarte - Administración PúblicaJosé Uriarte - Administración Pública
José Uriarte - Administración Públicayoulivek
 
19 2 Victor Sanchez
19 2 Victor Sanchez19 2 Victor Sanchez
19 2 Victor Sanchezyoulivek
 
18 Raul Jimenez
18 Raul Jimenez18 Raul Jimenez
18 Raul Jimenezyoulivek
 
17 3 Agustin Marquez
17 3 Agustin Marquez17 3 Agustin Marquez
17 3 Agustin Marquezyoulivek
 
17 4 Joaquin Ochoa
17 4 Joaquin Ochoa17 4 Joaquin Ochoa
17 4 Joaquin Ochoayoulivek
 
17 2 Miguel Montes
17 2 Miguel Montes17 2 Miguel Montes
17 2 Miguel Montesyoulivek
 
José María Fuster
José María FusterJosé María Fuster
José María Fusteryoulivek
 
13 Alfonso Gonzalez
13 Alfonso Gonzalez13 Alfonso Gonzalez
13 Alfonso Gonzalezyoulivek
 
15 1 Mario Hernandez
15 1 Mario Hernandez15 1 Mario Hernandez
15 1 Mario Hernandezyoulivek
 
15 2 Guillermo G Morales
15 2 Guillermo G Morales15 2 Guillermo G Morales
15 2 Guillermo G Moralesyoulivek
 
9 JesúS Gorriti
9 JesúS Gorriti9 JesúS Gorriti
9 JesúS Gorritiyoulivek
 
8 RamóN Ortiz Y Sergio Del Rio 2
8 RamóN Ortiz Y Sergio Del Rio 28 RamóN Ortiz Y Sergio Del Rio 2
8 RamóN Ortiz Y Sergio Del Rio 2youlivek
 
8 RamóN Ortiz Y Sergio Del Rio 1
8 RamóN Ortiz Y Sergio Del Rio 18 RamóN Ortiz Y Sergio Del Rio 1
8 RamóN Ortiz Y Sergio Del Rio 1youlivek
 
4 Antonio SáNchez Y JesúS Contreras
4 Antonio SáNchez Y JesúS Contreras4 Antonio SáNchez Y JesúS Contreras
4 Antonio SáNchez Y JesúS Contrerasyoulivek
 
5 Jorge Maestre
5 Jorge Maestre5 Jorge Maestre
5 Jorge Maestreyoulivek
 
7 Sergio MejíAs
7 Sergio MejíAs7 Sergio MejíAs
7 Sergio MejíAsyoulivek
 

More from youlivek (20)

Business 2.0
Business 2.0Business 2.0
Business 2.0
 
Empresa 2.0
Empresa 2.0Empresa 2.0
Empresa 2.0
 
Isaac Vidal y Joantxo Llantada
Isaac Vidal y Joantxo LlantadaIsaac Vidal y Joantxo Llantada
Isaac Vidal y Joantxo Llantada
 
Paula Duran - derecho 2.0
Paula Duran - derecho 2.0Paula Duran - derecho 2.0
Paula Duran - derecho 2.0
 
José Uriarte - Administración Pública
José Uriarte - Administración PúblicaJosé Uriarte - Administración Pública
José Uriarte - Administración Pública
 
19 2 Victor Sanchez
19 2 Victor Sanchez19 2 Victor Sanchez
19 2 Victor Sanchez
 
18 Raul Jimenez
18 Raul Jimenez18 Raul Jimenez
18 Raul Jimenez
 
17 3 Agustin Marquez
17 3 Agustin Marquez17 3 Agustin Marquez
17 3 Agustin Marquez
 
17 4 Joaquin Ochoa
17 4 Joaquin Ochoa17 4 Joaquin Ochoa
17 4 Joaquin Ochoa
 
17 2 Miguel Montes
17 2 Miguel Montes17 2 Miguel Montes
17 2 Miguel Montes
 
José María Fuster
José María FusterJosé María Fuster
José María Fuster
 
13 Alfonso Gonzalez
13 Alfonso Gonzalez13 Alfonso Gonzalez
13 Alfonso Gonzalez
 
15 1 Mario Hernandez
15 1 Mario Hernandez15 1 Mario Hernandez
15 1 Mario Hernandez
 
15 2 Guillermo G Morales
15 2 Guillermo G Morales15 2 Guillermo G Morales
15 2 Guillermo G Morales
 
9 JesúS Gorriti
9 JesúS Gorriti9 JesúS Gorriti
9 JesúS Gorriti
 
8 RamóN Ortiz Y Sergio Del Rio 2
8 RamóN Ortiz Y Sergio Del Rio 28 RamóN Ortiz Y Sergio Del Rio 2
8 RamóN Ortiz Y Sergio Del Rio 2
 
8 RamóN Ortiz Y Sergio Del Rio 1
8 RamóN Ortiz Y Sergio Del Rio 18 RamóN Ortiz Y Sergio Del Rio 1
8 RamóN Ortiz Y Sergio Del Rio 1
 
4 Antonio SáNchez Y JesúS Contreras
4 Antonio SáNchez Y JesúS Contreras4 Antonio SáNchez Y JesúS Contreras
4 Antonio SáNchez Y JesúS Contreras
 
5 Jorge Maestre
5 Jorge Maestre5 Jorge Maestre
5 Jorge Maestre
 
7 Sergio MejíAs
7 Sergio MejíAs7 Sergio MejíAs
7 Sergio MejíAs
 

Recently uploaded

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 

Recently uploaded (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 

11 AgustíN Cuenca

  • 1. Agustín Cuenca Ruby On Rails ASPGems 7.nov.2007
  • 2. elevator pitch hacemos software que en lugar de hacer cada vez mas cosas hace menos, pero las importantes, usando las más avanzadas técnicas y métodos de desarrollo de software
  • 3. misión convertir el software en una comodity
  • 4. nuestra visión: conjunción de elementos Principio Menos es mas Metodología SAS SCRUM Herramientas Ruby on Rails
  • 5. menos es más todo lo que alguien usa alguna vez vs solo lo que usa todo el mundo siempre
  • 6. nuestros proyectos • alta productividad • velocidad de desarrollo • flexibilidad file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente-antevenio.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente3.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente5.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente2.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente1.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente4.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/MiRubibn.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente-isea.gif file:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente-sepomo.gif
  • 7. software as a service
  • 8. Ruby y Ruby on Rails • Ruby: un lenguaje de programación • Ruby on Rails: un “open source web application framework“ escrito en Ruby para hacer aplicaciones MVC. • Combinadas consiguen: – Alta productividad – Flexibilidad ante los cambios – Velocidad de desarrollo
  • 9. Contacto Dirección: Isla Graciosa nº 2, Despachos 34 y 35, 28700 San Sebastián de los Reyes, Madrid Teléfonos : (+34) 91 658 73 32 E-mail: info@aspgems.com
  • 10. Ruby
  • 11. ¿Por qué Ruby? • Permite escribir código fácil de entender en menos lineas • Es free soft • Extensibilidad • Tiene una comunidad muy activa
  • 12. Principios de Ruby La estética del diseño japonés Foco en los factores humanos Principio de la menor sorpresa Principio de lo sucinto (breve, compendioso)
  • 13. Principio de la menor sorpresa Ejemplos • El principio supremo en el ¿De que clase es un objeto? • diseño de Ruby o.class • Hace felices a los ¿Se escribe Array#size o • programadores Array#length? Son dos alias del mismo método • Hace Ruby mas fácil de aprender ¿Diferencias entre vectores? • diff = ary1 – ary2 union = ary1 + ary2
  • 14. Principio de lo sucinto • O lo que es lo mismo el del menor esfuerzo: • No queremos malgastar tiempo, – Especialmente en ficheros de configuración, getters, setters, etc. • Cuanto mas rápido programas más consigues • Menos código implica menos errores
  • 15. Ruby es completamente orientado a objetos • Todas las clases derivadas de Object incluyendo Class (como en Java) pero no hay primitivas (para nada como Java) • Ruby usa herencia simple, (la herencia múltiple se consigue con mixings) • Los módulos permiten añadir comportamientos a las clases • Reflexión es uno de los muchos mecanismos dinámicos del lenguaje • Los operadores = o + son en realidad métodos
  • 16. Convenios de escritura • Encadenamiento de métodos print array.uniq.sort.reverse • Los nombres de métodos admiten !(indica cambio) y ? (indica boolean) array.sort! • Iteradores y bloques vs. Bucles files.each { |file| process(file) } • Mayúsculas y minúsculas – Las Clases empiezan con mayúsculas – Las CONSTANTES siempre en mayúsculas – Todo lo demás: método o variable local. – Uso del_en lugar de MezclarMayusculasMinusculas
  • 17. RAILS • MVC – Modelo – Vista – Controlador • Facilidades adicionales
  • 18. ¿Qué es Rails? • Rails, o Ruby on Rails o RoR es: • Framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura Modelo-Vista- Controlador (MVC)
  • 19. MVC: Navegador Petición HTTP Respuesta HTTP Controlador Vista Las acciones Las páginas MODELO Las entidades BdD
  • 20. Modelo 20
  • 21. Relaciones • Los modelos (entidades) están relacionados entre si • Hay varias relaciones definidas en Rails – has many, belongs to, has and belongs to, etc. • Declaración en los modelos, limpia y legible • Convenciones para reducir al mínimo el código.. – ...aunque todo se puede personalizar, claro
  • 22. Migraciones • Expresan cambios en la base de datos • Permiten actualizar fácilmente – Se crean nuevas migraciones con un script – Para actualizar: rake migrate • Mecanismos de descripción de la migración: – ActiveRecord para los datos – create table, remove column, etc. para casos comunes
  • 23. Observadores • Permiten ejecutar operaciones relacionadas con los modelos • Se especifica la lista de observadores de la aplicación • Diferentes enganches: before validation, after create, before save, ...
  • 24. VIEW 24
  • 25. Plantillas generales • También se escriben en Ruby • Permiten definir el aspecto base de las paginas • Plantillas parciales – Para reutilizar trozos de plantillas
  • 26. Helpers Etiquetas HTML • Paginación • Generación de Javascript • Generación de URLs • Operaciones comunes de texto • Formato de números • Generación de trozos de la pagina • Medición de tiempos •
  • 28. Controlador • Reciben las peticiones del usuario • Modifican, si es necesario, el modelo según la petición • Prepara la información a mostrar • Selección la plantilla para: – presentar resultados – gestionar el diálogo
  • 29. Filtros • Permiten ejecutar código antes/después de las acciones • Permiten saltarse las propias ejecuciones de las acciones • Muy útiles para autenticación y para filtrado posterior • Tres tipos: – before filter – after filter – around filter
  • 31. Un entorno integrado • Diferentes entornos de configuración – Permiten adaptar la aplicación al entorno y especificar los datos de conexión a la base de datos • Valores de configuración: – development, production, test • Diferentes bases de datos en desarrollo, producción o pruebas
  • 32. Otras facilidades • Mapping relacional integrado • Sistema de mailing integrado • Sistema de sindicación (rss) integrado • Integración con AJAX y script.acul.us • Templates RJS (DSL para gestión Ajax)
  • 33. En nuestro piloto 237 LOCs en helpers • Autenticación, ABMC y • listados de: 680 en controladores • – usuarios, centros, 336 en modelos. • empleados Suman unas 1250 lineas. • – Cálculo de comisiones, el forecast – Subida y proceso de Excel, generacion y descarga de CSV, – Toda la persistencia, uso de Ajax en varios sitios, etc., ... Además: no hay ni una sola linea de configuración XML.
  • 34. Conclusión Simple • Elegante • Integrado • Funciona •
  • 35. Contacto Dirección: Isla Graciosa nº 2, Despachos 34 y 35, 28700 San Sebastián de los Reyes, Madrid Teléfonos : (+34) 629 222 222 E-mail: agustin@aspgems.com