Frameworks de programacion ¿Qué es un framework?:Según wikipedia:La palabra inglesa "framework" (infraestructura, armazón, marco)1 define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar.
En el desarrollo de software, un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos concretos de software, que puede servir de base para la organización y desarrollo de software. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio, y provee una estructura y una especial metodología de trabajo, la cual extiende o utiliza las aplicaciones del dominio
https://es.wikipedia.org/wiki/Framework
Realmente una definición un tanto complicada, negus yo un framework es una herramienta que brinda un conjunto de clases e interfaces con practicas comunes para el desarrollo de aplicaciones mas rápidas y robustas.
Ventajas de un framework:-
Uso de buenas practicas probadas en cientos de aplicaciones, utilizando un framework te aseguras de que lo que hagas tiene robustez y que estas aplicando buenas practicas.
-
Velocidad, los frameworks brindan paquetes de herramientas para no tener que hacer una y otra vez lo mismo en cada nuevo proyecto que comiences, si no lo trae el framework podes empaquetar la nueva funcionalidad y utilizarla en proyectos futuros (modularizar codigo)
-
Brindan un marco de comienzo inicial, muchas veces nos encontramos con el problema de no saber por donde arrancar y con un framework ese puntapie ya lo tenemos cubierto.
- La mayoría de los frameworks utilizan
patrones de diseño que brindan seguridad, estabilidad y escalabilidad en nuestras aplicaciones.
- Mejora los ambientes de trabajo facilitando la
colaboración, al trabajar en grupo es indispensable tener buenas practicas de programación y programar de una forma en la que los otros miembros del grupo puedan aportar código sin necesidad de andar preguntando o revisando todo el código para poder entenderlo, los frameworks permiten estandarizar flujos de trabajo para que todos sepan donde y como se hace cada cosa.
- Muchos frameworks se apoyan en comunidades de programadores que no solo
actualizan constantemente el framework en si sino que también aportan paquetes de funcionalidades que ya se programaron y que pueden ser útiles a otros grupos.
Desventajas:-
Tiempo de aprendizaje, como todo lo nuevo aprender a utilizar un framework lleva tiempo pero déjame decirte que las ventajas que tienen son muchísimas y vale la pena.
-
Conocer bien los lenguajes de programación: generalmente puedes utilizar un framework sin conocer mucho del lenguaje de programación pero esto no es lo recomendable para aprovechar al máximo las ventajas que te brinda es necesario conocer en profundidad el lenguaje de programación en el que esta escrito el framework.
- Muchas veces los framework agregan código y servicios que no aprovechamos en todas las aplicaciones que creamos depende de cada uno
la limpieza.Frameworks actuales (PHP):¿Qué framework utilizar- Esto depende de tu nivel, no todos los frameworks son fáciles de aprender y no todos brindan las mismas herramientas, creo que lo ideal seria saber manejarlos a todos y de acuerdo a cada proyecto emplear el que convenga ya que todos tienen ventajas en algunos puntos del desarrollo.
Destacar que también es bueno perfeccionar alguno para poder ir armando tu propio kit de módulos y trabajar en cada proyecto con comodidad, por mi parte recomiendo codeigniter o yii para comenzar y luego si podes pasar a symfony o laravel que son los mas usados en la actualidad.
¿Qué saber antes de utilizar un framework PHP?- Es fundamental saber programar php orientado a objetos, todos los frameworks utilizan la orientación a objetos ya que se basan en ella para poder implementar los patrones de diseño.
- Recomendable entender el patrón
MVC (modelo vista controlador)
Como
recomendación final los aliento a aprender y utilizar frameworks no solo para uso propio sino para poder tener oportunidades laborales futuras, cualquier empresa de desarrollo de software seria utiliza alguno de estos frameworks y va a ser indispensable que ustedes demuestren conocimiento al menos en alguno, sabiendo uno los otros se aprenden con 1 o 2 meses de capacitación.
En futuros post es probable que hable cosas de YII que es el framework con el que trabajo actualmente así que los invito a leer sobre su comunidad.
Un abrazo!