Está en la página 1de 14

Resumen Frameworks

¿Qué es un framework?
• Definición: “es un diseño o implementación parcial de una aplicación en
un dominio dado”
• Van Gurp, Jilles; Bosh, Jan. “Design, Implementation and
Evolution of Object Oriented Frameworks: Concepts &
Guidelines”. 2001

• “Es un conjunto de clases que cooperan para hacer un diseño


reutilizable para una clase específica de software”
• Gamma et all, “Design Patterns”

• La idea es tener estructuras reutilizables que nos permitan resolver


problemas específicos, concentrándonos solo en la lógica del problema
y no en las estructuras alrededor.
Historia
• Los primeros intentos de software reutilizable fueron las librerías de
procedimientos o funciones.
• Que solo permiten reutilizar piezas específicas del código: el de los
métodos o funciones al ser llamados.
• Dichas librerías de métodos normalmente tienen alguna agrupación
nominal para localizarlos más fácilmente.
• Por ejemplo: JQuery o React.js

• Se hacía necesario tener o compartir elementos más amplios que solo


métodos específicos.
Repasemos
• Frameworks: Y una “Biblioteca”

“es un diseño o implementación


parcial de una aplicación en un
dominio dado”

“Es un conjunto de clases que


cooperan para hacer un diseño
reutilizable para una clase específica
de software”
Historia
• La interacción entre una aplicación y una librería es unidireccional: pero entre
un Framework y una aplicación es bidireccional.

App App
No solo usa código, sino que
Solo usa fragmentos usa estructuras que encapsulan
específicos de código procesos, lógica y componentes
con funciones específicas para la
Librería Framework implementación
Uso
• Los frameworks permiten a las compañías o profesionales que los construyen
capturar elementos comúnes de funcionamiento en objetos y métodos
• La mayoría de los frameworks (o todos) son “opinionated”: tienen una
visión específica y asertiva acerca de cómo deben organizarse, hacerse,
implementarse y elaborarse las cosas.

• El proceso de crear una aplicación a partir de un framework específico se


llama “instanciar un framework”.
Tipos de Framework por su área de uso

Dominio
para implementar Aplicación
aplicaciones de un proveen un conjunto Muchos frameworks caen fácilmente
completo funcionalidades en al menos 2 de estas categorías,
dominio específico para construir aplicaciones
de propósito general y con normalmente en más medida en una
distintas características. que en otra.

Soporte
dan funcionalidades
específicas para un solo
tipo de tarea.
Uso de Frameworks
• Si un framework se usa haciendo herencia a partir de clases que él contiene
o implementando interfaces para que nuestras implementaciones sean
usadas por él, se dice que es de CAJA BLANCA.
• Los puntos de implementación o especialización se llaman “Hot-Spots”

• Si usted no puede heredar o implementar, sino solo configurar componentes


pre-existentes para reutilizarlos,
se dice que es de CAJA NEGRA.
Framelets
• Un framelet es un “pequeño framework” contenido dentro de otro más grande,
con un propósito definido
• Normalmente agrupan cierto tipo de componentes, por ejemplo las clases
de interfaz gráfica de Swing de Java.

• Aunque algunas personas ubican el tamaño en 10 clases, puede


considerarse que mientras sean una división claramente divisible del
Framework contendedor y no sean más allá de un 25% de las clases de
él, es un framelet.
Problemas de usar Frameworks
• Composición: al crear un framework es común asumir que solo existe él
durante la creación y ejecución. Usted como programador no puede preveer
todas las posibles configuraciones de ambientes de las aplicaciones
existentes.

• Puede haber otro framework o librería que trate de controlar un proceso o


instanciar objetos en memoria de otra clase que no sean compatibles con los
que usted espera.
Problemas de usar Frameworks
• Evolución: los frameworks normalmente evolucionan de forma
iterativa.

• La evolución de los frameworks difícilmente estará controlada por los


programadores que los usan en sus aplicaciones. Con el tiempo
dichas aplicaciones pueden quedarse “pegadas” a una versión
específica porque el framework evolucionó más rápido que ellos.

• Y si usted usa varios frameworks, la intercompatibilidad será un


problema serio.
Buenas practicas de diseño de un framework
• Separar interfaces e implementaciones

• Cada conducta o rol  una interfaz

• Combine roles usando herencia

• Evite la dependencia (acoplamiento) tanto como sea posible.


Buenas practicas de diseño de un framework
• Prefiera delegar antes de hacer Herencia. Si hace clases concretas, valore
hacerlas finales

• Haga componentes pequeños.

• Haga framelets de caja blanca para permitir al usuario escribir/ampliar las


funciones en áreas pequeñas

• Divida los frameworks en framelets si son muy grandes


Buenas practicas de diseño de un framework
• Tenga cuidado con la configuración y estándares.
• De preferencia, use estándares abiertos.
• Proporcione métodos estándar y valores por omisión

• Automatice las configuraciones

• Automatice la generación de documentación.

También podría gustarte