sábado, 18 de febrero de 2017

¿Qué es un framework?

Un framework es un conjunto de elementos que juntos nos ayudan a construir software de una manera más sencilla, de mayor calidad, y en menor tiempo. Podríamos decir que un framework se compone de las siguientes características:

Un objetivo limitado y concreto


El framework sirve para resolver una tarea perfectamente definida. Puede ser la distribución de las capas en nuestro sistema, facilitarnos la construcción de una capa en concreto, relacionar entidades de negocio con entidades de base de datos, o ayudarnos con otros aspectos como la inyección de código o semejantes.

Un conjunto de librerías


Un framework agrupa librerías diseñadas para solucionar la tarea para la cual está pensando. Dichas librerías están basadas en patrones de software y son consistente en todo el paquete (todos las objetos son creados y se usan de la misma forma). Además su funcionalidad es completamente extensible para resolver nuevas necesidades (sin modificar las librerías mismas).

Posiblemente un conjunto de herramientas


Aunque este punto podría estar incluido en el anterior, decidí hacer una división mas practicas. Las librería son los elementos que son referenciados desde nuestro código, la herramientas son aquellas que nos ayudan a crear nuestro código. Pueden ser que creen de forma automática todas las entidades de nuestro negocio o las entidades de nuestra base de datos, o las páginas web de nuestra aplicación. Los generadores de código automáticos entran en esta categoría.

Patrones de diseño


Los frameworks esta íntimamente relaciones con los patrones de diseño. Generalmente implementan una colección bastante común y amplia de ellos, y además obligan a que se sigan implementando dichos patrones en los sistemas donde son usando.

Metodología de trabajo


A la vez que el framework ofrece una colección de librerías para resolver un problema, también debe ofrecer una metodología de trabajo que nos indique como hacerlo. Solo hay una forma de hacer las cosas de forma "correcta" y esa es la forma es indicada por el mismo framework.

Si no se cumplen esta serie de características entonces no estaríamos hablando de un framework, sino simplemente de un conjunto de librerías reutilizables agrupadas.

No hay comentarios:

Publicar un comentario