Framework

tag Desarrollo y programación

Un framework (ver definición en Wikipedia) es un entorno o marco de trabajo para desarrolladores. Un conjunto de prácticas y herramientas software para un lenguaje de programación concreto, que establecen una forma de trabajar y de organización conceptual, que sirven como base a los desarrolladores para la creación de aplicaciones.

Su finalidad principal puede resumirse como la de facilitar y agilizar el desarrollo de software.

Los marcos de trabajo se desarrollan para un lenguaje de programación concreto como pudiera ser PHP, Javascript, Ruby o Python por citar algunos. Puedes encontrar un gran número de ellos para cada lenguaje, la mayoría gratuitos y de código abierto.

Ventajas asociadas a un framework

Para lograr su objetivo, un framework suele facilitar herramientas, funcionalidades, o imponer una forma de trabajar que permite:

  • evitar tener que escribir código fuente repetitivo
  • preservar buenas prácticas de diseño de software
  • centrarse en la lógica del negocio y delegar ciertas tareas básicas o de bajo nivel que gestiona el propio framework
  • facilitar la estandarización y colaboración entre desarrolladores

Desventajas de usar framework

El principal inconveniente es el tiempo a invertir para aprender a usarlo y comprender su filosofía de trabajo. Una vez sabemos trabajar con él, el uso de este tipo de tecnología permite desarrollar aplicaciones de forma más rápida y segura.

Otros posibles riesgos o inconvenientes es decantarse por emplear un framework que:

  • acabe siendo abandonado por los desarrolladores o su comunidad.
  • tenga graves agujeros de seguridad (aunque este tipo de riesgo suele mitigarse en marcos de trabajo con una comunidad activa y que se actualizan constantemente).

Elegir un framework adecuado

Al elegir un marco de trabajo para un determinado lenguaje deberíamos fijarnos en factores como:

  • la documentación disponible, que sea amplia y actualizada, de fácil consulta y acceso.
  • la comunidad de desarrolladores, que sea activa y numerosa, con foros públicos donde poder plantear dudas y resolver problemas.
  • su arquitectura. La más utilizada es la arquitectura MVC (modelo – vista – controlador), que facilita la separación entre la lógica del negocio, los datos y su representación.
  • su complejidad. Hay marcos de trabajo extremadamente complejos que, para un determinado proyecto, puede que no aporte nada extra que no pueda ofrecer un framework más sencillo.
  • el rendimiento. Si tu aplicación va a ser usada por miles de personas o se trata de una aplicación crítica que requiere de tiempos de respuesta y latencia inmediatos, deberás decantarte por un framework optimizado y rápido. Encontrarás en internet muchas comparativas y benchmark.
  • seguridad. Puedes consultar el histórico de versiones y buscar en internet para ver si un determinado framework ha tenido en el pasado grandes agujeros de seguridad.
  • popularidad y continuidad. Es conveniente apostar por un marco de trabajo con cierta popularidad y que evolucione periódicamente. Evita un framework poco extendido o que no se haya actualizado en los últimos 6 meses.