Por qué usar un Framework

La pregunta exactamente es ¿Por qué usar a Laravel? o ¿Por qué trabajar con Symfony?

He trabajado en empresas donde no usan ningún Framework, directamente en empresas que tienen como producto un sistema que comercializan. Esto los convierte prácticamente en los creadores de su propio Framework, recuerdo que para trabajar allí tuve que aprender su estándar, estructura y convenciones. Esto me ha sucedido dos veces, trabajé un año en un equipo cuyo un sistema era de ventas y administración de productos físicos y por 18 meses trabajé en otra empresa con un sistema dedicado a la administración de laboratorios clínicos.

Con esto entendemos que un Framework no es total ni absolutamente necesario, un Framework es una herramienta mas que tenemos a la mano para desarrollar mejor y más rápido. La ventaja por ejemplo de usar Laravel es que ya lo conocemos y acoplarnos a un equipo no requierirá mucha preparación o entrenamiento previo. De hecho un Framework brinda un estándar, reglas, buenas prácticas y una estructura fácil de mantener y escalar.

Con un Framework obtenemos certeza desde el primer momento.

El desarrollo es más rápido porque la estructura y los componentes ya existen, esto permite que no dediquemos tiempo en módulos genéricos como login, acceso a datos, seguridad, registro y otros temas. Esto ayuda a que nos centremos directamente en la tarea importante y no en programar lo que ya está programado.

Una regla de negocio no es la función de login, el cliente asume que este es el comportamiento normal de un proyecto. Su regla de negocio es otra cosa, es quizás la administración mensual de usuarios con recordatorios automáticos por email y SMS de cobros, y ahí de debe estar nuestro enfoque al momento de crear una solución. El principio básico de un Framework es ese, dicho de otra manera sería "un Framework tiene como misión solucionar los problemas comunes, tu debes encargarte del resto, resuelve el problema de tu cliente".

Tu tiempo es valioso, literalmente es dinero que pagas tu, la empresa o el cliente. Ese tiempo debe dedicarse en lo importante como las pruebas unitarias, desarrollo de código mantenible y sólido. No debe usarse en resolver el envío de email o en el login.

Te había comentado que trabajé algún tiempo en empresas con sistemas propios desde cero, el principal problema en estos espacios era el mantenimiento, esto causaba mucho disgusto y preocupación no porque el sistema esté con malas prácticas, el obstáculo principal era que los programadores nuevos no se adaptaban con la velocidad requerida, en cambio con un Framework tenemos directamente a la comunidad manteniendo el núcleo de nuestro sistema.

Con un Framework es fácil adoptar un sistema porque conocemos la estructura, cualquiera podría de forma rápida darle mantenimiento y crear nuevas funciones. Si hablamos de Laravel podemos decir que es un sistema que hereda muchos componentes, entre ellos componentes de Symfony. Y si hablamos de Symfony, este sigue siendo PHP; desarrollar con estos sistemas permite que usemos cualquier componente PHP (propio o externo).

Qué ganamos

  1. Usar una herramienta probada por miles de programadores y millones de usuarios.
  2. Disponemos de actualización y mantenimiento a cero costo.
  3. Compromiso, calidad y mantenimiento por parte del proveedor.
  4. Buenas prácticas y estándares comprobados.
  5. Comunidad.

Mi primer Framework PHP

youtube

Si todo esto es verdad ¿por qué el profe Italo creó un curso de creación de Framework?

Esta pregunta es valida, la idea es imitar el comportamiento de estos sistemas para entenderlos mejor. Si sabemos que por ejemplo Laravel usa el componente vlucas/phpdotenv para la carga de variables de entorno y además entendemos cómo implementarlo en una práctica propia podemos conocer mucho mejor al Framework.

La idea de crear un sistema propio es practicar, no crear la competencia de estas herramientas.

Siendo sincero, estoy seguro de que jamas podré crear algo mejor que lo construido por la comunidad (la comunidad se resume en cientos de colaboradores, miles de usuarios y millones de descargas). Así que entendamos que este tipo de prácticas tiene como fin enseñar no superar a Laravel, Symfony ni otros sistemas.

Compartir en: Facebook Twitter