Varias veces he leído o escuchado a otros programadores decir que, para acelerar el desarrollo de algún proyecto y llevar a cabo un mejor trabajo en equipo, se debe hacer uno de algún Framework, pero rara es la ocasión en que se detienen a explica lo que son. Así que, para no quedarnos con la duda vamos viendo de que se tata.
Basándonos en la definición de la Wikipedia tenemos que un Framework es “Una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede ser organizado y desarrollado. Puede incluir soporte de programas, bibliotecas y un lenguaje interpretado, entre otros programas para ayudar a desarrollar y unir los diferentes componentes de un proyecto”.
La definición no nos lo dice directamente, pero un Framework facilita la vida a los programadores y diseñadores. Ya que por el hecho de “desarrollar y unir los diferentes componentes de un proyecto” tenemos que, los programadores se encargarán de la parte de código puro y duro, y los diseñadores exclusivamente del diseño, sin tener que tocar código de mas.
¿Y cómo se logra lo anterior? Bueno, pues por regla general los Frameworks trabajan con la arquitectura denominada MVC, que no es otra cosa que separar todos los elementos que conforman el proyecto en tres partes:
- Modelos: Incluye lo relacionado con la extracción de información, ya sea de una base de datos, de algún archivo de texto, etc. Esto le toca a los programadores.
- Vista: Es la última parte de la arquitectura, lo que se le presenta gráficamente al usuario. Aquí meten mano los diseñadores.
- Controlador: El controlador se encarga de poner orden; manda llamar al Modelo o la Vista según corresponda. Esto también le toca a los programadores.
Muchos Frameworks incluyen un “lenguaje propio” que no es otra cosa que la simplificación del lenguaje de programación que cubre el Framework; su finalidad es escribir menos código y hacer más. Lo cual tiene mucho que ver con las librerías que también incluyen, cuya finalidad es equivalente a la anterior, ya que nos ahorra el tener que escribir código para tareas comunes, como la conexión a una base de datos, por ejemplo.
Algunos ejemplos de Frameworks que seguramente ya han escuchado son: Ruby on Rails, CodeIgniter, CakePHP, Zend… Etc. Y su uso dependerá de las necesidades a cubrir de cada proyecto, así como la familiarización de los involucrados con cada Framework.