artesanos de software: el uso e implementación de patrones de diseño en sistemas productivos, no...
Post on 16-Apr-2017
683 Views
Preview:
TRANSCRIPT
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
pedro.quinonez@gmail.com
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
top related