¿Cuál es la diferencia entre frontend y backend?

Frontend y backend son dos especializaciones diferentes en el desarrollo web. Hace años, un desarrollador frontend era la misma persona que diseñaba la web, mientras que el resto eran desarrolladores backend.

Ahora en una empresa mediana o grande hay muchos más roles involucrados. Pero en empresas pequeñas (también llamadas start-ups), lo normal es tener dos desarrolladores: uno para el frontend y otro para el backend.

Diseñador

El desarrollador frontend no es un diseñador. Esto es una false creencia. El diseñador es el profesional que dibuja el diseño en un papel o usa una aplicación como Photoshop. El diseñador debe proveer el diseño final en formato de imagen, entregando también el resto de elementos gráficos de la web.

Si la web debe cambiar drásticamente entre diferentes dispositivos (usando diseño responsive), el diseñador también es responsable de diseñar cómo se verán esas versiones diferentes.

Frontend

El frontend es todo lo asociado con el interfaz de usuario y las interacciones. Esto incluye el HTML como lenguaje para presentar la información, CSS como lenguaje para dar estilo a esa información, y Javascript como lenguaje para las interacciones.

Para hacer el trabajo más fácil, los desarrolladores frontend normalmente usan algún tipo de framework CSS, siendo Twitter Bootstrap el más popular. Esto representa tener una serie de archivos que definen la base del estilo, y el desarrollador frontend puede personalizarlo.

Si la aplicación provee una API, la práctica común es usar un framework Javascript para implementar todas las plantillas, para que el backend solo se comunique con el frontend mediante la API. Estos frameworks de Javascript tienen métodos para modularizar el código, así el mantenimiento es más fácil. Ejemplos de estos frameworks podrían ser Angular, React, Vue, Ember, etcétera.

Dependiendo del framework del backend elegido, las plantillas pueden formar parte de este, y en ese caso el desarrollador frontend debe adaptarse al lenguaje elegido para escribir las plantillas. Pero si el backend solo ofrece la API, entonces las plantillas deben ser implementadas en la parte del frontend, usando uno de los frameworks Javascript mencionados antes. Aquí es donde ambos lados pueden solaparse.

En resumen, un desarrollador frontend debe conocer esencialmente HTML, CSS y Javascript. Desde este punto, a un montón de herramientas y frameworks están disponibles para hacer el trabajo más fácil, aunque al principio tendrás que pasar una curva de aprendizaje.

Backend

El backend es lo que no se puede ver directamente en el navegador. Es algo que está calculando información y preparándola en segundo plano.

Hoy en día nadie implementa un backend desde cero (excepto esas grandes empresas de internet que ya conoces). Para hacer el trabajo fácil, es común usar un framework. Para Ruby el framework más común es Ruby on Rails, que provee un patrón MVC. La V es donde el backend puede solaparse con el frontend, como vimos antes.

Pero si la aplicación debe ofrecer una API sencilla, es común usar un micro-framework como Sinatra, que permite implementar el enrutado y controladores en un solo archivo.

El desarrollador backend normalmente debe encargarse de la base de datos, que puede ser relacional (como PostgreSQL) o orientada a documentos (como MongoDB). Este último tipo también se conoce como NoSQL. Cuando una base de datos es suficientemente grande como para ser el corazón de la empresa, es otro rol el que hace cargo: el DBA.

Pero no todo es sobre proveer información al usuario actual que está navegando por la web. Enviar notificaciones por email es algo que se gestiona por un sistema de colas que se ejecuta de forma asíncrona para mejorar la concurrencia. Para este asunto hay varias soluciones. En el mundo de Ruby un sistema popular es Sidekiq, que usa Redis para tener acceso rápido a lo que hay que procesar.

Finamente, la aplicación debe ser transferida al servidor. Excepto en tecnologías web de Microsoft, el resto usan servidores Linux, así que el desarrollador backend necesita tener conocimientos para preparar este sistema operativo, además de saber optimizarlo. Entonces, con la ayuda de una herramienta de despliegue (como Capistrano), solo los cambios son transferidos.

Full stack

Por último llegamos al rol del desarrollador Full stack, que agrupa el backend y el frontend. Este tipo de desarrollador es el más habitual en los equipos de desarrollo. Al final todos debemos trabajar de este modo, haciendo el proceso de desarrollo más ágil.

En mi opinión y experiencia, un desarrollador full stack suele ser un desarrollador backend con bastantes conocimientos de frontend, conociendo CSS a fondo y algún framework Javascript.

En este caso puede haber varios desarrolladores frontend que apoyen el trabajo de los full stack, incluso liderando el desarrollo de la parte frontend, marcando las directrices a seguir.

Conclusión

A la hora de empezar a aprender sobre desarrollo web, hay que tener claro hacia qué camino enfocarse, porque tanto el backend como el frontend son ya muy grandes y están haciendo enormes avances.

Si te gustan los interfaces de usuario y estás cómodo usando HTML y CSS, el frontend es tu área. Pero ten en cuenta que el Javascript es obligatorio, porque lo usarás en todo tipo de herramientas y frameworks. Recuerda que el desarrollador frontend no es un diseñador.

Si te sientes más cómodo trabajando con bases de datos y sirviendo peticiones, el backend es para ti. Es posible que también debas gestionar el sistema operativo y los despliegues (transferir el código actualizado al servidor). Pero lo más importante es elegir un lenguaje que te guste. Ruby es una buena opción. De hecho, el slogan de Ruby es «el mejor amigo del programador» 🙂

Click to rate this post!
[Total: 1 Average: 5]

Deja un comentario