Desde el enrutamiento de solicitudes HTTP hasta el acceso a la base de datos y la representación de la interfaz de usuario, la mayoría de las aplicaciones web tienen mucho en común entre ellas. Muchos de ellos permiten que sus visitantes se registren, y es difícil imaginar una aplicación web sin enviar correos electrónicos.
Un marco de software es una forma de poner en práctica esta observación..
Al extraer los rasgos comunes y la arquitectura subyacente de la aplicación y agruparlos en una plantilla y colección de bibliotecas reutilizables, un marco permite a los desarrolladores centrarse en lo que hace que su proyecto destaque..
De hecho, cuando usas tu proyecto anterior como repetitivo en lugar de empezar de cero, ya estás utilizando un marco ad-hoc. Los marcos de trabajo populares de PHP, como Laravel, Yii o Symfony, llevan este enfoque a su conclusión lógica al enfocar el diseño de la arquitectura y las herramientas del marco y luego ponerlo a disposición de otros desarrolladores para que lo utilicen en sus proyectos..
Pero usar un marco siempre es la mejor manera de hacerlo o, a veces, tiene sentido simplemente comenzar desde cero usando nada más que PHP simple.?
Para responder a la pregunta, en este tutorial, veremos cinco ventajas y desventajas de usar un marco PHP.
Comencemos observando cómo el uso de un marco PHP puede ayudarlo en el desarrollo de su aplicación..
En las nuevas empresas de hoy en día basadas en la experimentación, la creación rápida de prototipos y la obtención de su producto viable mínimo en el mundo lo más rápido posible, la velocidad de desarrollo puede ser lo que haga o rompa su negocio..
Usar un marco PHP es una forma de responder a este requisito.
Un marco PHP bien diseñado selecciona las mejores implementaciones para los problemas comunes de la comunidad de código abierto y, basándose en ellas, le proporciona una arquitectura de aplicación (en la mayoría de los casos, basada en el patrón Modelo-Vista-Controlador) para guiar tu desarrollo.
De esta manera, en lugar de dedicar tiempo a planificar la arquitectura de su aplicación y evaluar las diversas bibliotecas disponibles, puede comenzar desde una plantilla totalmente funcional, si no es más que explícita, y construir las características específicas de su aplicación. Muchos marcos PHP también vienen con una herramienta de línea de comandos que puede utilizar para generar código y ahorrar más de su precioso tiempo de desarrollo.
Al acelerar su desarrollo, un marco también lo puede hacer más seguro: está trabajando rápido, pero eso no sucede al hackear su camino con soluciones rápidas y sucias, sino con prácticas recomendadas y componentes listos para usar..
Las soluciones incluidas en un marco PHP moderno se prueban continuamente y son revisadas por pares y validadas por múltiples desarrolladores que usan el marco. Como los marcos son de código abierto, los problemas de seguridad y otros problemas que puede pasar por alto en su código de propiedad se notan y resuelven rápidamente.
Dicho esto, es importante recordar que el uso de un marco no significa que pueda olvidarse de la seguridad y las buenas prácticas de desarrollo. Asegúrese de usar el marco como debe ser, manténgalo actualizado y haga su parte en cosas como la validación de parámetros: usar las herramientas de los marcos, no es tan difícil.
Al proporcionar una estructura de sonido para su aplicación y dirigirlo hacia las mejores prácticas y patrones de desarrollo de software, un marco PHP lo guía hacia la escritura de código que está acoplado de forma flexible y se repite lo menos posible. En otras palabras, es fácil de leer, probar, mantener y desarrollar.
Prácticamente todos los marcos de PHP populares de hoy están orientados a objetos y desarrollados con pruebas automatizadas e incluso con un desarrollo basado en pruebas en mente.
Aún tendrás que hacer tu parte. Pero en comparación con comenzar desde cero, un marco y su documentación que le recuerdan los conceptos y que lo alientan a usarlos seguramente lo ayudarán..
Otra forma en la que el uso de un marco facilita el mantenimiento de su aplicación es a través de sus componentes compartidos. A medida que las bibliotecas y los ayudantes del marco se desarrollan independientemente de su aplicación, puede descargar una gran parte del mantenimiento de su aplicación a los desarrolladores del marco..
En cierto modo, es como tener un equipo de desarrolladores trabajando para ti, de forma gratuita!
Como desarrollador, usted conoce sus clases y funciones de memoria y puede usarlas fácilmente. Pero a medida que traes miembros del equipo, la situación cambia..
Sin el conocimiento de sus decisiones de diseño y la documentación completa (seamos realistas: especialmente en el mundo del rápido desarrollo, la documentación suele ser una idea de último momento), les resultará difícil envolver sus cabezas alrededor del código de su aplicación.
El uso de un marco PHP ayudará a que los nuevos desarrolladores puedan comenzar a trabajar en el proyecto. Lo más probable es que ya estén familiarizados con el marco y puedan poner toda su atención en comprender los aspectos específicos de la aplicación. E incluso si el marco es nuevo para ellos, la documentación, los tutoriales en línea y los patrones de diseño conocidos les ayudarán a ponerse al día con el mínimo esfuerzo..
Todo esto mientras puede seguir trabajando en la aplicación en lugar de enseñarle a los desarrolladores sus formas de pensar..
Finalmente, un beneficio significativo de usar un marco PHP proviene de las comunidades activas de desarrolladores y usuarios que se reúnen alrededor de ellos..
Todos los marcos principales atraen colaboradores de código abierto que, además de trabajar en el marco mismo, desarrollan widgets, bibliotecas y componentes de ayuda adicionales para que otros los incluyan en sus aplicaciones. Otros colaboradores escriben tutoriales y libros o crean videos para explicar los entresijos de cómo usan los marcos en proyectos de la vida real..
Como parte de dicha comunidad de desarrolladores, crecerás como desarrollador, aprendiendo rápidamente y aplicando lo que aprendes al desarrollo de tu aplicación..
Y si lo desea, puede retribuir y participar en los proyectos de código abierto de cualquier manera que le parezca natural y satisfactoria..
Ahora que hemos visto cómo el uso de un marco PHP puede ayudarlo en su desarrollo, echemos un vistazo a las desventajas y por qué, a veces, ir sin uno puede ser la mejor opción..
En comparación con la ejecución de un script PHP simple, un marco PHP siempre agrega complejidad y sobrecarga en forma de clases y bibliotecas cargadas incluso antes de que se llame su código. La diferencia puede ser significativa en los scripts rápidos y las API con un conjunto limitado de funcionalidades que deben ejecutarse rápidamente.
Sin embargo, en la mayoría de las aplicaciones web, las implicaciones de eficiencia de un marco tienen más que ver con la forma en que lo usa que el marco mismo. Por ejemplo, si bien una implementación de Registro Activo es una forma útil de acceder a la base de datos, no tiene sentido usarla en lugares en los que tenga que trabajar en varias filas de la base a la vez..
Así que esto se reduce a conocer las necesidades de su aplicación, pero también a no permitir que se le adjunte una forma específica de usarla. A veces, incluso cuando se trabaja con un marco, tiene sentido eludir y escribir algo del código en un nivel de abstracción más bajo.
La idea de un marco PHP es ser una solución general para los requisitos recurrentes a los que se enfrentará la mayoría de los desarrolladores al desarrollar una aplicación web. Pero, ¿dónde deberíamos trazar la línea de qué incluir en el marco y qué dejar para que las aplicaciones o los complementos de terceros implementen??
Según algunos desarrolladores, aquí es donde muchos frameworks salen mal.
El creador de PHP, Rasmus Lerdorf, ha dicho:
“Nadie tiene un problema general. Todos tienen un problema muy específico que están tratando de resolver. Y un marco de propósito general, si bien puede resolverlo, generalmente lo resuelve de manera que usted obtenga tantas otras cosas que no necesita. Eso termina siendo hecho en cada solicitud ".
Debido a esto, si decide utilizar un marco, es importante asegurarse de elegir uno que se ajuste a las necesidades de su aplicación..
Si bien la mayoría de los marcos se basan en la carga diferida y no incluirán las partes del marco que su aplicación no usa, la complejidad adicional seguirá existiendo, lo que provocará modificaciones innecesarias en la eliminación de la funcionalidad que venía con el marco pero que no no necesita.
Si bien un marco PHP te empuja hacia un buen código, no es una garantía para ello. Si trabaja con un marco sin entenderlo y los patrones de diseño detrás de él, lo más probable es que termine con un gran desorden estructurado..
Para alguien que ya esté familiarizado con estos principios de diseño, desde otros marcos o proyectos, la curva de aprendizaje será relativamente corta. Para un desarrollador con menos experiencia, el aprendizaje tomará más tiempo. Por no hablar de dominar el marco..
Por lo tanto, si tiene prisa y su proyecto es pequeño, puede que no sea el momento de comenzar a aprender un nuevo marco. En su lugar, considere usar un micro-marco o incluso comenzar desde cero y usar algunas bibliotecas con las que está familiarizado.
Luego, tómese el tiempo para aprender un marco PHP completo cuando su programación lo permita.
El uso de un marco de software mueve el desarrollo de su aplicación a un nivel más alto de abstracción. Esto es por diseño, y por lo general es algo bueno. Sin embargo, es bueno darse cuenta de que también puede conducir a problemas..
Si bien muchas partes de la plantilla del marco están diseñadas para ser personalizadas, el núcleo del marco y sus bibliotecas son como una caja negra que se utiliza pero sobre la cual no tenemos mucho control. Puede sugerir mejoras pero, en última instancia, depende de los desarrolladores del marco decidir si incluirán ese cambio o no.
Además, si comienza a usar un marco antes de comprender completamente el lenguaje PHP, puede confundir las características del marco con las características del lenguaje y terminará usando la funcionalidad del marco incluso cuando PHP simple sea una mejor opción..
Un marco es siempre una dependencia externa para su código de aplicación controlado por alguien que no sea usted y su equipo. Si bien esto generalmente no es un problema, es algo que vale la pena considerar si el software que está creando es una parte fundamental de su negocio..
Pregúntese qué hará si el desarrollo del marco se cae o se mueve en una dirección que no quiere seguir.
Una buena manera de mitigar este riesgo es usar un marco confiable y popular con una comunidad activa de desarrolladores y usuarios. Pero incluso entonces, es algo para reflexionar: son los beneficios de usar un marco lo suficientemente grande como para que valga la pena correr el riesgo?
Un marco PHP moderno es una herramienta poderosa en el cofre de herramientas de un desarrollador de software: puede ahorrarle mucho tiempo y esfuerzo y le brinda tranquilidad al desarrollar su aplicación PHP. Solo recuerda que esto no debería reemplazar el núcleo de aprendizaje PHP primero.!
La clave en la conclusión anterior, sin embargo, es seleccionar la herramienta adecuada para el trabajo. Cada proyecto es diferente, e incluso un marco que sea perfecto para un proyecto podría no ser el adecuado para el siguiente. Opte por la simplicidad y pregúntese si un marco completo es adecuado para el proyecto, o si usar un micro-marco como Lumen podría ser una mejor solución..
Comenzar desde cero con PHP vainilla es rara vez la mejor opción, pero también vale la pena considerarla al desarrollar una aplicación muy simple (como un sitio web sin mucha interactividad) y recuerde que siempre puede ampliarla utilizando Composer para seleccionar las bibliotecas de su eligiendo.
Al seleccionar un marco, asegúrese de que el marco que elija esté desarrollado y admitido activamente y siga las prácticas de ingeniería de software de sonido. De esta manera, está asegurando el futuro de su aplicación asegurándose de que el marco subyacente no sufra una muerte silenciosa.
Y finalmente, incluso si decides no usar uno, es una buena idea familiarizarte con uno o más de los marcos PHP modernos. Estudiarlos es una excelente manera de aprender y mejorar su oficio en el desarrollo de software y ayudarlo a mantenerse al tanto del mundo en evolución del desarrollo de PHP..