Esta web usa cookies propias y de terceros para mejorar la navegación y obtener datos estadísticos de la misma. Si continua navegando, consideramos que acepta su uso. Puede cambiar la configuración u obtener más información  Aquí Aceptar

En Abalit desarrollamos los backend de nuestros proyectos en Laravel, por su robustez y fiabilidad.

desarrollador laravel, empresa desarrolladora laravel, backend laravel

Os explicaré los pros y contras de desarrollar APIs de backend en Laravel

Laravel es un framework open-source de PHP desarrollado por el MIT en 2011. Su principal objetivo es simplificar y estilizar el código y que sea más sencillo de leer, interpretar y programar, virtud de la que carecía la programación del lenguaje nativo PHP.

El framework norteamericano consigue su objetivo gracias a componentes y dependencias, en sus inicios mayoritariamente externas, pero con el transcurso de los años ha conseguido crear dependencias propias mejorando las de otros frameworks. Muchas de estas dependencias son del pionero francés Symfony, como Doctrine para la gestión de las bases de datos, mejorado y adaptado por Laravel con Eloquent, o http-foundation para las conexiones HTTP.
Así como lo era y es para PHP, el principal target de Laravel son las páginas y aplicaciones web. Laravel permite romper, o no, si no se desea, con la percepción de las webs monolíticas antiguas donde no se distinguían las figuras de Frontend y Backend, y era PHP el que generaba código HTML para visualizar directamente en el navegador.

Con la llegada del protocolo REST y de la popularización de las APIs, Laravel nos permite adaptar las dos figuras de la programación moderna mencionadas en el párrafo anterior en un stack de uso en nuestra empresa de desarrollo de apps: un Frontend web (HTML + JS) que consuma un Backend de Laravel o cualquier otro y un Backend que alimente a otros Frontends, por ejemplo una APP de un smartphone, cómo hacemos en Abalit Technologies.

Nuestra empresa desarrolladora de apps nutre su contenido gracias a la parte servidor desarrollada con Laravel

¿Qué es un backend?


Un Backend es la lógica y la programación que se encuentran en el servidor. Se encarga de la gestión de los datos en un aplicación: coloquialmente, es “lo que hay detrás de una APP”.

Es el responsable de:

  • Las conexiones y la gestión de la base de datos, como la inserción de datos en ella. (ej: un alta de un usuario, o un nuevo producto en una app).
  • Alimentar las peticiones del frontend con datos reales a través de los end-points, que son las rutas o URLs con las que el backend devuelve la información. En un entorno web se devolvería una página HTML, pero en una API REST se devuelve un objeto JSON con la información solicitada. Luego es, el frontend, el encargado de estilizar esta información en la app.
  • La seguridad de la app, restringiendo el acceso de las peticiones a datos sensibles de los usuarios. De hecho, es muy popular el uso de tokens de autenticación generados por el propio backend. En Laravel, usamos la dependencia Passport, aunque también es común el JWT.
  • Optimización de recursos y de la programación, para reducir al máximo los tiempos de respuesta y mejorar la experiencia de usuario. Algunas técnicas son la paginación o las colas de trabajo (enviar e-mails asíncronamente), entre muchos otros.

Puntos fuertes de hacer un backend con Laravel


Node.js, Django, y Symfony son unos de los frameworks más famosos para APIs y backends pero, en mi opinión, Laravel les supera en los siguientes puntos:


  • Documentación. Si es verdad que para un programador junior o principiante la palabra framework asusta, en Laravel no. Su documentación oficial es de las más completas, de las más simples y de las mejor explicadas (https://laravel.com).
  • Eloquent ORM, adiós queries. Cómo ha sido nombrado anteriormente, este súper-paquete de Laravel nos permite sustituir las consultas SQL y de MongoDB por una simple Programación Orientada a Objetos. De este modo, Eloquent se encarga de convertir nuestros objectos a queries para cualquiera de las bases de datos que acepta.
  • Routing o rutas. Si bien en Node.js, por convención, las rutas se definen por entidades o modelos en ficheros separados, en Laravel los endpoints se agrupan por funcionalidades de la aplicación (web.php si es en un entorno web o api.php si es para una API), para poder organizar mejor las rutas de nuestra aplicación. Además, nos da la posibilidad de agrupar las rutas, permitiéndonos así asignarles prefijos, sufijos y middlewares.
  • Middlewares más sencillos. Son controladores que se ejecutan antes o después de una petición para evitar repetirlos en nuestras funciones sistemáticamente. Laravel nos da ejemplos y una estructura para aprender como usarlos. Los más comunes son las autenticaciones de tokens de sesión, los permisos de un usuario, etc.
  • La consola artisan. Laravel incorpora el cli artisan, que nos permite en comandos muy lógicos y sencillos realizar acciones que otros frameworks no nos permiten, como crear ficheros (modelos, controladores, providers …), limpiar la cache, etc. En definitiva, una maravilla, no tenemos que tenerle miedo a la terminal, es nuestra amiga (https://laravel.com/docs/7.x/artisan).
  • “Comunidad = estabilidad”. La comunidad de Laravel es inmensa y cada vez crece más. Eso significa mayor detección y corrección de bugs, paquetes adaptados al framework y en definitiva, una estabilidad que todos los programadores buscamos, tanto los que ya usamos el framework como los que no saben con cual decidirse.
  • No es sólo para hacer CRUD. Laravel tiene la fama de que solo sirve para páginas web como blogs y similares. Es bien cierto que no es así: Laravel puede usarse para la programación de alto rendimiento, para SOLID, DDD, CQRS y Arquitectura Hexagonal entre otros, pues su escalabilidad nos permite todo esto y más.
  • Bonus Track de paquetes de Laravel propios: Blade, su gestor de webs “monolíticas” y no monolíticas moderno y limpio. Lumen, un micro-framework más ligero especificado para APIs sencillas o específicas y micro-servicios. Cashier, gestor de pagos. Y Tinker, consola de comandos para actuar con nuestras clases.

Complicaciones (con soluciones)


Laravel no es un camino de flores para todo el mundo, también tiene handicaps y dificultades para los principiantes:


  • Para programadores que vengan de la programación en un lenguaje puro, como PHP, la curva de aprendizaje puede llegar a ser muy inclinada debido a la cantidad de conceptos nuevos que se deben aprender, como el MVC, los Middlewares y todo lo que he comentado anteriormente en este artículo.
  • El echo de que nos “obliga a programar bien”. Laravel nos proporciona una nueva manera de gestionar nuestro código y nuevas funciones de paquetes propios para sustituir las de PHP y su sintaxis, más orientado a objectos, en general. Al Principio, puede ser un problema a la hora de romper con muchas manías que se tenían al programar en PHP puro, un ejemplo es la gestión de arrays, donde Laravel fomenta el uso de sus collections.
  • Optimización. Si no sabemos seleccionar bien las dependencias que importamos o si no distinguimos si es necesario importar una o crearla nosotros, puede resultar en que nuestra aplicación vaya demasiado lenta.

Conclusión


Un tiempo atrás, en una sesión retropsectiva que realizamos con los ojos de una empresa dispuesta mejorar su producto, nos encontramos con Laravel después de un exhaustivo proceso de selección de tecnologías. Laravel nos ha proporcionado un techo más alto y un ascensor para llegar a él, mientras que con PHP habíamos llegado al final de una escalera más bien corta.

Cualquier contratiempo o limitación que hayamos encontrado con Laravel, ha sido resuelto gracias a su comunidad, nos ha ayudado desinteresada y eficazmente.

Su curva de aprendizaje nos pareció imposible de recorrer, como también te podría ocurrir a tí. Pero a medida que avanzas, te ayuda a ser mejor programador, más ordenado, más limpio y con una visión más global de un proyecto. Es un framework super-potente al que se puede sacar mucho jugo.


En Abalit hemos dado un salto de calidad exponencial exprimiendo Laravel. Probamos otros frameworks y por su dificultad innecesaria y/o por su poca facilidad no están a su altura.

Y para concluir, reiteramos que podemos implementar Laravel en cualquier proyecto tanto para empresas cómo emprendedores, ya sean APPs sencillas (MVP), APPs más complejas y con alto rendimiento, software empresarial, aplicaciones web, y un largo etcétera.

¡Pon Laravel en tu currículum y en tu empresa!.

Gracias por leernos. ¡Siéntete libre de pedirnos presupuesto para desarrollar software en Laravel!.

Marc C, backend specialist

Tal vez te interese nuestro artículo sobre las mejores dependencias para desarrollar un backend en Laravel - Mayo 2020

¿QUIERES UNA APP?

Pide presupuesto para desarrollar una app. Si lo deseas, indícanos si la quieres crear en Barcelona, Madrid, Nueva York o Londres.

Introduce el código de validación:
captcha