11 AgustíN Cuenca

974 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
974
On SlideShare
0
From Embeds
0
Number of Embeds
27
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

11 AgustíN Cuenca

  1. 1. Agustín Cuenca Ruby On Rails ASPGems 7.nov.2007
  2. 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. 3. misión convertir el software en una comodity
  4. 4. nuestra visión: conjunción de elementos Principio Menos es mas Metodología SAS SCRUM Herramientas Ruby on Rails
  5. 5. menos es más todo lo que alguien usa alguna vez vs solo lo que usa todo el mundo siempre
  6. 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. 7. software as a service
  8. 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. 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. 10. Ruby
  11. 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. 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. 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. 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. 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. 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. 17. RAILS • MVC – Modelo – Vista – Controlador • Facilidades adicionales
  18. 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. 19. MVC: Navegador Petición HTTP Respuesta HTTP Controlador Vista Las acciones Las páginas MODELO Las entidades BdD
  20. 20. Modelo 20
  21. 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. 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. 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. 24. VIEW 24
  25. 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. 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 •
  27. 27. Controlador 27
  28. 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. 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
  30. 30. Facilidades adicionales 30
  31. 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. 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. 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. 34. Conclusión Simple • Elegante • Integrado • Funciona •
  35. 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

×