Blog
Cuando desarrollas cualquier tipo de aplicación (no solo aplicaciones web), es necesario desarrollar un frontend y un backend.
De una forma sencilla, el frontend es lo que el usuario ve y manipula en la app y el backend es el que se encarga de manejar las solicitudes e interacciones del usuario con la aplicación.
Lógicamente, el frontend y el backend se comunican entre ellos. Las solicitudes HTTP son enviadas desde el frontend al backend con la finalidad de transferir datos ingresados por el usuario o recuperar información de la base de datos.
¿Cómo ocurre todo esto?
Ambos extremos son necesarios ya que ninguno puede hacer todo por sí mismo.
Consideremos una red social como Facebook.
El usuario “ve cosas” (publicaciones e interacciones de amigos y páginas), pero, ¿dónde están almacenadas estas “cosas” que el usuario ve?
Lógicamente es imposible que todo esto esté almacenado en el ordenador del usuario. Se necesitarían una memoria muy y un ancho de banda extremadamente grande solo para cargar la página de inicio.
Por lo tanto, toda esta información es almacenada en los servidores de Facebook. Aquí es donde el Backend hace su aparición. El Backend se encarga de todo el manejo y almacenamiento de los datos y la información de un sitio web.
En el otro extremo se encuentra el Frontend, el cual se encarga de todo lo relacionado con la interfaz del usuario. Esta es procesada e interpretada en el dispositivo del usuario, sea la interfaz de un sitio web o una app, la interfaz es mostrada en la pantalla del dispositivo que el usuario esté utilizando.
Cualquier cosa que pase en la pantalla, es controlada por el Frontend, sea una ventana emergente, una entrada o validación de datos. El Frontend es responsable de mostrar y actualizar todo lo que el usuario puede observar, trabajando en conjunto con el Backend.
El Frontend y el Backend se comunican utilizando solicitudes HTTP.
Por ejemplo, al iniciar sesión en una red social, el Frontend recibirá los datos de autenticación (nombre de usuario y contraseña) y los enviará al Backend, utilizando una solicitud HTTP con la información necesaria para que sea validada por el Backend y luego este genere una respuesta según la validación que haya hecho, la cual es enviada al Frontend nuevamente para que finalmente el usuario inicie sesión.
Partes del Backend
Seguramente hasta ahora tienes la idea de que el Backend es solo una base de datos.
La base de datos es solo una parte del Backend. Entonces la base de datos junto a la lógica de validación de datos conforma el corazón del Backend.
Ya que no es solamente una base de datos, también es utilizado para ejecutar código que no puede o no debe ser ejecutado en el Frontend. Por ejemplo:
- Operaciones que tomen mucho tiempo que puedan afectar el desempeño de la interfaz.
- Interacciones con el sistema de archivos.
- Validación de datos ingresados, ya que el código del lado del cliente puede ser editado.
- Cualquier interacción con la base de datos.
El Frontend solo debe manejar código relacionado con la interfaz de usuario. Debe poder recibir, enviar y presentar datos y permitir la interacción del usuario.
Cualquier otro trabajo de validación, comunicación con la base de datos, manejo del sistema de archivos y similares, debe ser manejado por el Backend.
Para Desarrollar Frontend
El desarrollo de Frontend consta de múltiples partes y lenguajes de programación.
Para internet se desarrollan sitios que son cargados y mostrados por el navegador con:
- HTML el cual funciona como esqueleto del sitio.
- CSS el cual le da estilo al sitio.
- JavaScript el cual maneja la lógica del lado del cliente y le otorga funciones interactivas al sitio web.
Estos son los lenguajes básicos que se necesitan. Pero son muy pocas las ocasiones en las que se logran desarrollar apps grandes solo con esos.
Además de lo básico de los lenguajes, generalmente se implementan frameworks de JavaScript como:
- React.JS
- Angular
- Vue.JS
Para Desarrollar Backend
Si se quiere trabajar con la parte del Backend se necesitan conocimientos de algún lenguaje que funcione del lado de los servidores, entre los cuales se encuentran:
- NodeJS, el cual es un framework de JavaScript.
- PHP.
- Python, utilizando frameworks como Django o Flask.
Fullstack Developer
El término de Fullstack Developer (Desarrollador Fullstack) es popular en el campo del desarrollo web.
Este se refiere a los desarrolladores que no se limitan solo al Backend o solo al Frontend. Es decir, es aquel desarrollador que conoce lenguajes para ambos extremos y que pueden desarrollar una app web solos.