¿Por que Laravel, Bootstrap y VueJS?

Entonces buscamos un tutorial de HTML y PHP y aprendemos a escribir “HOLA MUNDO” en el navegador. ¿Y entonces? Como pasamos de aquí a una página interactiva, que consulte valores en una base de datos, se refresque automaticamente y que de paso sea visualmente atractiva.

El camino por recorrer es largo, y no es porque sea dificil, sino porque son muchos caminos que podemos elegir para llegar al mismo destino. Entonces sucede que pasamos mas tiempo eligiendo el camino que recorriendolo.

Puedes elegir caminos tortuosos, sin ayudas en la carretera y con un sol inclemente…  Entonces nos fuimos con HTML, PHP y MySQL puro, como la vieja usanza.

Pero luego vimos que existen un sinfín de diversas tecnologías, todas buenas, y realmente no se quiere defender el camino elegido como el mejor, sino uno que cumple con los requerimientos de nuestros proyectos y que de paso, nos guste. Para un equipo de trabajo que viene del mundo de la automatización de procesos y la programación estructurada toca estudiar nuevos conceptos, y uno de ellos es el Modelo-Vista-Controlador (MVC), lo cual es una lectura obligatoria para entender de que va todo este mundo.

Es por esto que aunque para muchos programadores web, tal vez el microcontrolador y el C++ sean de mirar de lejos, el Arduino nos es muy divertido y sencillo de programar, ya que comparado con la forma de programar los micros hace 10 años, es un juguete.

Backend:

Entonces tocó elegir entre un sinfín de frameworks para facilitar el trabajo. Y realmente entender con la práctica y no con teoría la diferencia entre el Backend y Frontend.

  • Basados en PHP: Laravel, Symfony, Zend Framework, CodeIgniter, CakePHP, FuelPHP, Yii 2, Phalcon.
  • Basado en Python: Django, Piramid, Web2py, TurboGears.
  • Basado en NodeJS (Javascript): Express.

Si, hay tantos y realmente no se estudiaron todos, sino los mas populares. Cada uno con sus pro y contra, ventajas y desventajas.

Y nos decidimos por Laravel cuando conocimos y nos enamoramos de Eloquent.

Eloquent es el ORM (Object-Relational mapping) que incluye Laravel para manejar de una forma fácil y sencilla los procesos correspondientes al manejo de bases de datos en nuestro proyecto. Transforma las consultas SQL a un sistema MVC lo que nos permite procesar consultas SQL directamente y así protegernos de la inyección SQL. En otras palabras, es poder usar la información almacenada dentro de la base de datos sin tener que usar sentencias SQL en el codigo, sino con funciones y variables directamente.

Verdaderamente Laravel tiene muchísimas otras funcionalidades super interesantes como los son Blade, las Rutas y la gran comunidad y documentación existente; pero Eloquent fué amor a primera vista. La mayoría de nuestra aplicaciones funcionan con API, por lo que la interacción con la base de datos y la generación de una respuesta del tipo Json son fundamentales, lo cual Laravel simplifica.

Adicionalmente a estos puntos, utilizar el framework nos permite organizar el código y facilita el trabajo en equipo bajo un mismo ambiente de desarrollo. Podemos sumar que la mayoría de los hosting tienen PHP, por lo que la implementación de un framework PHP en un hosting sencillo ahorra muchas cosas, desde el presupuesto hasta la preparación de los servidores.

Frontend:

Es verdad que el trabajo pesado lo hace el servidor en el backend, tras bambalinas; pero lo bonito es lo que vende, y en este punto hay que ser bastante detallista para obtener los mejores resultados posibles. Es por esto que bootstrap fué una tecnología a usar por defecto para obtener estilos visualmente atractivos sin querer reinventar la rueda.

Las páginas web en las que navegabas de aqui para allá y los formularios que te envian a una página de confirmación para despues regresar al inicio quedaron en el pasado; entonces surgen nombres como jquery, ajax, axios, etc. El hecho es que tenemos otro sin fin de librerías y frameworks de desarrollo basados en NodeJS y Javascript para la visualización de páginas web y el desarrollo de una SPA (Single-Page Application): React, Angular, VueJS, Meteor, Ember, Backbone, Aurelia, etc. Tampoco los estudiamos todos pero si lo suficiente para comprender que para nuestros fines no necesitamos un framework tan complejo con Angular, en el hay que instalar y preparar toda una plataforma de desarrollo antes de escribir la primera línea de codigo.

Es por ello que decidimos usar VueJS para el desarrollo de una SPA, el refrescamiento en tiempo real de la página y la incorporación de los componentes necesarios a medida. La elección viene fundamentada por tres puntos:

  • La curva de aprendizaje de VueJS es bastante sencilla.
  • El framework es progresivo, es decir, se puede usar e incorporar a la medida. Se puede iniciar una aplicación llamando al CDN (tipo Bootstrap), así como también crear una estación de desarrollo completa (tipo Angular).
  • Laravel trae todo preparado para la incorporación de VueJS y estaremos usando Laravel Mix para el desarrollo de los proyectos que involucren ambas tecnologías.