Meta Programación con Lenguajes de Objetos


Diseño con objetos

Introducción
¿Querés saber qué es la metaprogramación?
¿Te interesa entender cómo esta implementado un lenguaje de objetos y cómo podes sacar provecho de él?
¿Querés escribir herramientas que verifiquen automáticamente reglas de diseño o te faciliten la programación de tus sistemas?
¿Querés conocer las ventajas de un lenguaje "meta-circular"?
¡Participá de este curso y veremos todos estos temas y muchos más!
Descripción
El objetivo de este curso es que los asistentes entiendan el concepto de meta programación y aprendan cómo implementar y utilizar un lenguaje meta-circular.
Entender la necesidad de "upward-compatibility" y "downward-compatibility" y las soluciones de metaclases explicitas e implicitas.
Aprender y modificar el meta-modelo del lenguaje de programación que utilizas.
Utilizar técnicas de meta-programación para la resolución de problemas diarios que surgen en todo proyecto de software como la implementación de patrones de diseño genéricos, la inspección automatizada de reglas de diseño y muchos problemas más.

Temario

  • Definición de Meta-programación

  • Meta-programación estructural y de comportamiento.

  • Meta-programación de lectura y escritura

  • Reflexión, Introspección e Intersección

  • Upward y Downward compatibility

  • Metaclases implícitas y explícitas

  • Metamodelo de los siguientes lenguajes:


    • Java y .Net

    • Ruby

    • Phyton

    • Smalltalk


  • Utilización de meta-programación para implementación de patrones de diseño

  • Utilización de meta-programación para revisiones automáticas de reglas de diseño

  • Utilización de meta-programación en frameworks conocidos



Objetivos
Resultado esperado

  • Que los asistentes dominen las técnicas de meta-programación

  • Que los asistentes entiendas y sepan manipular el metamodelo del lenguaje de programación que usan

  • Que los asistentes se sientan capacitados para crear las herramientas que consideren necesarias para facilitar sus tareas


Que no cubre
Detalles de Frameworks particulares


Pre-requisitos
Diseño Avanzado de Software con objetos II o conocimientos acorde a lo presentado en dicho curso

Audiencia
Arquitectos, Diseñadores, Programadores, Líderes Técnicos

Cursos Relacionados



Duración
16 horas
Lenguajes de programación
Smalltalk - Java - .Net - Ruby - Python - ObjectiveC - Php - Swift - JavaScript