Como desarrollador web relativamente nuevo (autodidacta), he escuchado los términos front-end , lado del cliente , back-end y lado del servidor con bastante frecuencia. Para mí, front-end y back-end siempre fueron sinónimos del lado del cliente y del lado del servidor, respectivamente.
Sin embargo, a medida que comencé a trabajar con marcos MVC como CodeIgniter, me encontré con algunas instancias de front-end que se refieren básicamente a todo lo que ve el usuario final (incluido el código del lado del servidor), mientras que el back-end se ha referido a cualquier cosa el usuario final no ve (incluidos los CMS). Del lado del cliente y del servidor, para mí, son mucho más concretos en sus significados; tienen una línea muy distinta que los separa. Front-end y back-end, por otro lado, no.
En una conversación que recuerdo haber tenido con otro desarrollador web, se refirió a CodeIgniter (en su totalidad) como un front-end, y esto me dejó sin aliento. No estaba seguro de si corregirlo y decir que CodeIgniter era mi back-end, o si mis definiciones de los dos términos estaban completamente equivocadas.
La búsqueda de definiciones de front-end y back-end me confundió un poco más en algunos aspectos, aunque aclararon algunas cosas. Solo me gustaría saber dónde se dibujan las líneas entre estos cuatro términos y cómo se unen en el contexto del desarrollo web (específicamente en una pila LAMP).
fuente
Respuestas:
No creo que haya una definición formal para esos términos, y como notaron, en algunos casos hay superposición.
front-end
yclient-side
superponerse.server-side
yback-end
también se superponen.Si tuviera que dividir los pelos, ofrecería estos límites aproximados:
client-side
es una aplicación que se ejecuta en la computadora de los usuarios. Podría ser una aplicación independiente (más a menudo) o podría referirse a una interfaz basada en un navegador web (menos probable).front-end
también se enfrenta al usuario final y generalmente se ejecuta en una interfaz basada en un navegador web. No he oído hablar de clientes gruesos como afront-end
.back-end
se refiere a procesos y servicios que se ejecutan en otro servidor o en el fondo de la computadora de los usuarios. La mayoría de las veces, se refiere a procesos que no están en la computadora de los usuarios finales. Pero la clave, como mencionó, es que el usuario final no necesariamente conoce los procesos en ejecución.server-side
es una extensión de,back-end
pero refuerza explícitamente el hecho de que los procesos se ejecutan en otro lugar y no en las computadoras de los usuarios finales.A modo de ejemplo, y para resaltar la confusión entre los términos, usaré Minecraft como ejemplo.
Minecraft tiene un
client-side
aplicación cuando ejecuta los archivos jar localmente con su propia JVM.front-end
si elige ejecutar la aplicación cliente en su navegador webback-end
proceso que puede ejecutarse localmente en su máquina si está en modo independienteserver-side
procesar si elige iniciar sesión en un servidor que aloja la aplicación de servidor de Minecraft.Si profundizas en algunas de las estadísticas de Minecraft, verás que simplemente designan un componente
client
yserver
para el juego; no necesariamente les importa dónde se ejecutan esos componentes.Para responder directamente a sus preguntas:
Algo así, pero no realmente. Hay un matiz entre los términos si está discutiendo cosas fuera del mundo basado en la web. Si está estrictamente dentro del mundo basado en la web, entonces sí, son funcionalmente sinónimos.
En el mundo web, diría que sí. En otros ámbitos, diría que no, como se explica en las definiciones generales que ofrecí.
fuente
El lado del servidor se ejecuta en el servidor. El lado del cliente se ejecuta en el cliente. El back-end está procesando datos. Front-end lo está mostrando.
Mira esta página web. Extraer todos los comentarios de la base de datos es un trabajo de back-end del lado del servidor. La distribución de esos datos en una plantilla es un trabajo de front-end, del lado del servidor. Los widgets de votación AJAX y el elegante cuadro de entrada de texto son front-end, del lado del cliente.
fuente
En general, encuentro que usar el lado del cliente y el lado del servidor para describir el desarrollo / desarrolladores es menos vago. Esa parte del lado del cliente donde estamos haciendo malabares / formateando datos puede verse como un componente de fondo. Por otro lado, hay toda la plantilla que tiende a suceder en el back-end, que al ser "para el front-end" tiende a hacer que la gente hable de ellos como desarrollo front-end Java o C #. Es raro, pero lo he visto en descripciones de trabajo.
Pero sí, en general, el front end es la parte donde ocurre la interacción. El back-end es la parte donde toda esa interacción se convierte en algo útil.
fuente
Esta pregunta es algo más antigua, pero déjame agregar mi 2c:
En mi propio desarrollo web, utilicé el término "frontend", que significa código, u otros recursos, que se procesan en el navegador durante un tiempo. Ahora, uso el término "cliente", porque podría ser confuso especialmente. al hacer aplicaciones web. (Aplicaciones de una sola página)
Simplemente porque en el lado del backend, también hay una "interfaz", lo que significa en general la parte de la aplicación que es responsable de la salida (al navegador). Entonces "frontend" puede significar dos cosas diferentes. Sin embargo, el término "cliente" describe más claramente algo que está relacionado con el cliente real (en este caso, el navegador).
PD: Bueno, tal vez también debería cambiar mi apodo a "client_dev" ahora;)
fuente
El lado del cliente en una aplicación web está bajo el control del usuario / cliente, el lado del servidor está bajo el control del desarrollador. Esta es una de las razones por las cuales uno debe validar los datos en el servidor.
Los términos front-end y back-end se usan a menudo como sinónimos para el lado del cliente y del servidor y, en muchos casos, está bien. Sin embargo, también hay importantes contraejemplos. Para mí , el front end es cualquier cosa que muestra algo al usuario.
En la siguiente imagen, puede ver tecnologías / conceptos típicos y cómo encajan en los cuadrantes (front-end, back-end) / (lado del cliente, lado del servidor).
Desarrolladores front-end y back-end
Los desarrolladores frontend y backend son dos roles muy comunes. La línea se vuelve un poco borrosa cuando tienes cosas como React que se puede procesar en el lado del servidor y Flask que incluye el motor de plantillas jinja .
Y aunque pondría tecnologías como la base de datos Web SQL y la API de base de datos indexada en el cuadrante "backend del lado del cliente", la función que generalmente conoce esto es la función de desarrollador front-end.
Diseñador de UI vs Desarrollador Front End
Otros dos roles son el diseñador de UI y el desarrollador frontend. Entonces, una diferencia es que uno es diseñador y otro desarrollador.
Objetivo:
Herramientas:
API: REST y GraphQL
Las API son proporcionadas por los equipos de back-end y son utilizadas por las interfaces para llenar la aplicación con los datos. El backend es el almacenamiento persistente en todos los dispositivos, el frontend es la capa de presentación. La API es el canal de comunicación para ambos.
fuente