SlideShare una empresa de Scribd logo
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

Más contenido relacionado

Destacado

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
Morgane 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 Miribel
VSDS
 
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-piiisa
Juan J. Merelo
 
Modelo digital del proceso pedagógico
Modelo digital del proceso pedagógicoModelo digital del proceso pedagógico
Modelo digital del proceso pedagógico
Universidad Autónoma Gabriel René Moreno. Bolivia
 
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
Agence 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 2007
cubanito
 
Sistema de capas
Sistema de capasSistema de capas
Sistema de capas
Stefano Salvatori
 
Desdemicruz
DesdemicruzDesdemicruz
Desdemicruz
Adriana Gotsis
 
T Pfinal J Carzedda
T Pfinal J CarzeddaT Pfinal J Carzedda
T Pfinal J Carzedda
Josefina Carzedda
 
Problema 7
Problema 7Problema 7
Problema 7
carolina andrade
 
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
Orlando Suárez
 
Arte Chinesa com Gelo
Arte Chinesa com GeloArte Chinesa com Gelo
Arte Chinesa com Geloalex
 

Destacado (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 a 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 3
Roberto Allende
 
Atix13
Atix13Atix13
Atix13
atixlibre
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cd
campus party
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cd
campus party
 
Creacion Compilados De Sl En Cd
Creacion Compilados De Sl En CdCreacion Compilados De Sl En Cd
Creacion Compilados De Sl En Cd
campus 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
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
Gustavo Salazar Escobar
 
ATIX13
ATIX13ATIX13
Atix13
Atix13Atix13
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
jcarazo
 
Welcome to Django
Welcome to DjangoWelcome to Django
Welcome to Django
Erufenix Sanjuro Tadokoro
 
Web Mining
Web MiningWeb Mining
Web Mining
DMC Perú
 
Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
menttes
 
Html5
Html5Html5
04 taller-django
04 taller-django04 taller-django
04 taller-django
samerscd
 
Ardora
ArdoraArdora
Ardora
carolinahc25
 
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
Luis Carrasco
 
Atix20
Atix20Atix20
Atix20
atixlibre
 
Introduccion a core plot
Introduccion a core plotIntroduccion a core plot
Introduccion a core plot
Jorge Ortiz
 
Aprende programar-6330
Aprende programar-6330Aprende programar-6330
Aprende programar-6330
ANDRAM1224
 

Similar a 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
 

Más de youlivek

Business 2.0
Business 2.0Business 2.0
Business 2.0
youlivek
 
Empresa 2.0
Empresa 2.0Empresa 2.0
Empresa 2.0
youlivek
 
Isaac Vidal y Joantxo Llantada
Isaac Vidal y Joantxo LlantadaIsaac Vidal y Joantxo Llantada
Isaac Vidal y Joantxo Llantada
youlivek
 
Paula Duran - derecho 2.0
Paula Duran - derecho 2.0Paula Duran - derecho 2.0
Paula Duran - derecho 2.0
youlivek
 
José Uriarte - Administración Pública
José Uriarte - Administración PúblicaJosé Uriarte - Administración Pública
José Uriarte - Administración Pública
youlivek
 
19 2 Victor Sanchez
19 2 Victor Sanchez19 2 Victor Sanchez
19 2 Victor Sanchez
youlivek
 
18 Raul Jimenez
18 Raul Jimenez18 Raul Jimenez
18 Raul Jimenez
youlivek
 
17 3 Agustin Marquez
17 3 Agustin Marquez17 3 Agustin Marquez
17 3 Agustin Marquez
youlivek
 
17 4 Joaquin Ochoa
17 4 Joaquin Ochoa17 4 Joaquin Ochoa
17 4 Joaquin Ochoa
youlivek
 
17 2 Miguel Montes
17 2 Miguel Montes17 2 Miguel Montes
17 2 Miguel Montes
youlivek
 
José María Fuster
José María FusterJosé María Fuster
José María Fuster
youlivek
 
13 Alfonso Gonzalez
13 Alfonso Gonzalez13 Alfonso Gonzalez
13 Alfonso Gonzalez
youlivek
 
15 1 Mario Hernandez
15 1 Mario Hernandez15 1 Mario Hernandez
15 1 Mario Hernandez
youlivek
 
15 2 Guillermo G Morales
15 2 Guillermo G Morales15 2 Guillermo G Morales
15 2 Guillermo G Morales
youlivek
 
9 JesúS Gorriti
9 JesúS Gorriti9 JesúS Gorriti
9 JesúS Gorriti
youlivek
 
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
youlivek
 
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
youlivek
 
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
youlivek
 
5 Jorge Maestre
5 Jorge Maestre5 Jorge Maestre
5 Jorge Maestre
youlivek
 
7 Sergio MejíAs
7 Sergio MejíAs7 Sergio MejíAs
7 Sergio MejíAs
youlivek
 

Más de 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
 

Último

Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
gisellearanguren1
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 

Último (20)

Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaCatalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial Valencia
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANOREVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
REVISTA TECNOLOGICA PARA EL DESARROLLO HUMANO
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 

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