Artesanos de software: El uso e implementación de patrones de diseño en sistemas productivos, no...

download Artesanos de software: El uso e implementación de patrones de diseño en sistemas productivos, no todo en la vida son frameworks.

If you can't read please download the document

Transcript of Artesanos de software: El uso e implementación de patrones de diseño en sistemas productivos, no...

El uso e implementacin de Patrones de Diseo.

Pedro Quionez Bernardino Lder de Proyecto-Telcel

A G E N D A

La historia se repite...............

Objetivo

Que es un patrn

Clasificacin

Implementaciones

Utilizacin de enfoques (cuando s y cuando no)

Ventajas / Desventajas

La historia se repite...............

https://www.youtube.com/watch?v=qwZhHVl5hRU

Objetivo

Que es un patrn?

http://lema.rae.es/drae/?val=patr%C3%B3n

Un evento o problema que ocurre infinidad de veces en nuestro entorno, as como la solucin al mismo.

Un patrn define una posible solucin correcta para un problema de diseo dentro de un contexto dado.

Referencia: http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o#Categor.C3.ADas_de_patrones

Los 4 fantsticos...............

Elementos reusables.

No reinventar el hilo negro.

Homogenizar vocablos.

Estandarizar los diseos.

Facilitar el reconocimiento de problemas.

Cerrar alternativas vs nuevas formas de implementaciones.

Generar un ambiente cerrado a la creatividad inherente en el desarrollo de software.

Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides publican Design Patterns

1979-Christopher Alexander

Clasificacin

CreacinAbstract Factory

Factory Method

Builder

Singleton

Prototype

EstructuraAdapter

Bridge

Composite

Decorator

Facade

Proxy

Flyweight

Chain of Responsability

Interpreter

Mediator

Memento

Visitor

Command

Iterator

Observer

State

Strategy

Template Method

Comportamiento

Clasificacin

Implementaciones

Servidor Sockets Consultas S-HDR

Servidor de Reportes Corporativos (RUBI)

FrontEnd captura de informacin de Reportes y Procesamiento Movimientos.

Servidor Sockets Consultas S-HDR

Concurrencia

Performance

Volumen

Objetivo: Implementacin de un componente para la comunicacin de aplicaciones con plataforma de validacin.

Traza y Logueo

Comunicacin Sncrona

Servidor Sockets Consultas S-HDR

Servidor Sockets Consultas S-HDR

Servidor Sockets Consultas S-HDR

Reflection: obtiene instancia de implementacin a utilizar en runtime.

Singleton: generacin de nica instancia de parmetros de configuracin.

Factory Method: creacin de instancia de objeto a realizar las consultas a plataforma de validacin.

Strategy: para permitir el intercambio de funcionalidad o algortmo sin afectar el flujo de la aplicacin.

Pool de hilos: soporte de concurrencia por el servidor.

Servidor Sockets Consultas S-HDR

Implementacin.............................

Servidor de Reportes RUBI

Objetivo: Eliminar la problemtica inherente en la generacin de los reportes del Sistema de Integral de Aplicaciones.

Problemas:Saturacin de conexiones sobre sistema legacy.

Indisponibilidad de recursos compartidos entre aplicaciones.

Saturacin de Cluster y servidores de aplicaciones.

Lentitud e indisponibilidad de aplicaciones.

Servidor de Reportes RUBI

Estado inicial..................

Servidor de Reportes RUBI

Servidor de Reportes RUBI

Servidor de Reportes RUBI

Template Method: Define algoritmo de generacin de reporte.

Observer: Pasos a nivel flujo de reporte.

Strategy: Intercambio de funcionalidad de reportes.

Singleton: Unica instancia de Pool de Hilos (Reportes y Observadores).

Servidor de Reportes RUBI

Template Method: Define algoritmo de generacin de reporte.

Servidor de Reportes RUBI

Observer: Pasos a nivel flujo de reporte.

Cando s y cando no................

Implementacin in-house:Aplicaciones ligeras en tamao (no en funcionalidad).

La funcionalidad es concreta y especfica (no existen indefiniciones).

No es opcin actualizar aplicacin (negocio).

Sistemas heredados con tecnologas desactualizadas (aplicaciones operando, diversidad de APIs, alto costo en actualizacin de aplicacin).

Nivel intermedio-alto en conocimiento de POO, POA, Patrones y estilos arquitectnicos.

Cando s y cando no................

Implementacin hbrida (framework + patrones):Aplicaciones con funcionalidad ms extensa y variada (no reinventes el hilo negro).

La posibilidad de definir y proporner las tecnologas a utilizar (proyectos de desarrollos nuevos).

El alcance del desarrollo es ambiguo (demasiada incertidumbre e indefinicin).

Robustez e implementaciones validadas por toda una comunidad.

Ventajas / Desventajas...............

Ventajas:Conocimiento y control total de las tripas de las aplicaciones.

Aplicaciones compactas, dedicadas y puras.

Identificacin de un rea de oportunidad y posible implementacin.

Promocin de pensamiento abstracto.

Comprensin de la forma de trabajo de APIs y framework.

Generacin de mejores niveles de programacin.

Especializacin en la generalizacin.

Ventajas / Desventajas...............

Desventajas:Curva de aprendizaje.

Cambio de cultura y pensamiento de abstracto.

Fuertes conocimientos de conceptos de programacin y orientacin a objetos: Ya s porque no funciona..........

Caer en sobreingeniera y antipatrones.

Conocimiento puntual y especializado (saber qu, cmo, porque y cuando).

Preguntas:

@quinonezbp

http://mx.linkedin.com/in/pquinonez

[email protected]

Pulse para editar el formato del texto de ttulo

Pulse para editar el formato del texto de ttulo

Pulse para editar los formatos del texto del esquemaSegundo nivel del esquemaTercer nivel del esquemaCuarto nivel del esquemaQuinto nivel del esquemaSexto nivel del esquemaSptimo nivel del esquemaOctavo nivel del esquemaNoveno nivel del esquema