Diseño Avanzado de Software con Objetos II

Éste curso no se encuentra disponible por el momento



¿Te gustaría saber qué es un closure y por qué los lenguajes que los incluye son más productivos?
¿Alguna vez te preguntaste si es necesario tener una jerarquía de Excepciones tan grande como la que proveen los lenguajes de programación?
¿Estás cansado de tener diseños complejos por más que uses patrones de diseño?
¿Querés saber cuál es la diferencia real entre un Decorator, Adapter o Proxy? ¿Querés tener más claro cuando usar un patrón de diseño y cuando no?
¿Tenés ganas de perderle el miedo a la meta-programación o querés saber qué es un lenguaje 'meta-circular' y practicar seriamente con uno de ellos?
Si alguna vez te hiciste alguna de estas preguntas ¡entonces este curso es para vos!

El objetivo de este curso
es enseñar a los asistentes las distintas soluciones de arquitectura de objetos para problemas recurrentes como Idioms, Patrones de Diseño y Frameworks, viendo en detalle sus características, ventajas y desventajas. Entender correctamente qué es la meta-programación, cómo aplicarla, las ventajas y desventajas de usarla. Conocer soluciones tecnológicas existentes, no populares aún en nuestra profesión, como las bases de objetos o los frameworks web basados en continuations. Una vez terminado el curso, los asistentes estarán capacitados para decidir cuándo y cómo utilizar correctamente un idiom, patrón de diseño o framework. Podrán realizar un análisis crítico de las nuevas herramientas que surgen constantemente en nuestra profesión, basando este análisis en bases conceptuales bien definidas. Y por último estarán capacitados para generar soluciones de diseño reusables basadas en la metaprogramación.

Temario  

  • Caracterización del diseño.
    • Repaso de Jerarquías polimórficas.
    • Idioms
    • Utilización de Closures para sacar código repetido
  • Patrones de diseño:
    • Decorator
    • Adapter
    • Proxy
    • State
    • Composite
    • Visitor
    • Observer
    • Future 
    • Role
  • Framework
    • Caja Blanca
    • Caja Negra
    • Ejemplo concreto con un Framework conocido
  • Metaprogramación
  • Reflexión
  • Introspección e Intersección


Resultado esperado 
  • Utilización de patrones de diseño
  • Creación de patrones e idioms propios, orientados a resolver los problemas que el dominio en el que trabajan provee.
  • Generación de Frameworks especializados en el dominio de problema de la institución
  • Utilización de Metaprogramación en soluciones a desarrollar


Que no cubre  
  • No es un curso de Sintaxis de lenguajes 
  • Utilización de Ambiente de Desarrollo (Ej. Eclipse, VisualStudio, etc)
  • Notación completa de UML
  • Detalles de Frameworks particulares
  • No se ve en detalle el metamodelo de ningún lenguaje

Pre-Requisitos

Audiencia 
Programadores, Diseñadores, Arquitectos, Lideres Técnicos

Cursos Relacionados 



Lenguajes de programación

Smalltalk - Java - .Net - Ruby - Python - ObjectiveC - Php - Swift - JavaScript