11 agustín cuenca

Post on 13-Jan-2015

762 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Agustín Cuenca

Ruby On RailsASPGems

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

PrincipioMenos es mas

SAS

HerramientasRuby on Rails

MetodologíaSCRUM

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/cliente3.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/cliente5.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/cliente2.gif

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/cliente-sepomo.giffile:///../Documents%20and%20Settings/Tirso%20Maldonado/Configuración%20local/Plantillas/logos/Clientes/cliente-isea.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

ContactoDirecció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ésFoco en los factores humanosPrincipio de la menor sorpresaPrincipio de lo sucinto (breve, compendioso)

Principio de la menor sorpresa

• El principio supremo en el diseño de Ruby

• Hace felices a los programadores

• Hace Ruby mas fácil de aprender

Ejemplos

• ¿De que clase es un objeto?o.class

• ¿Se escribe Array#size o Array#length?Son dos alias del mismo método

• ¿Diferencias entre vectores?diff = ary1 – ary2union = 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

• MVC– Modelo– Vista– Controlador

• Facilidades adicionales

RAILS

¿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)

BdD

Controlador

Las acciones

MODELO

Las entidades

Navegador

Vista

Las páginas

Petición HTTP Respuesta HTTP

MVC:

20

Modelo

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, ...

24

VIEW

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

27

Controlador

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

30

Facilidades adicionales

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

• 680 en controladores

• 336 en modelos.

• Suman unas 1250 lineas.

• Autenticación, ABMC y listados de:– usuarios, centros,

empleados– 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

ContactoDirecció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

top related