En el desarrollo de software , el front-end se refiere a la capa de presentación con la que interactúan los usuarios, mientras que el back-end se refiere a la gestión y el procesamiento de datos en segundo plano. El término "full stack" engloba ambos. En el modelo cliente-servidor , el cliente suele considerarse el front-end, que gestiona la mayoría de las tareas de cara al usuario, y el servidor es el back-end, que se encarga principalmente de la gestión de datos y la lógica.
Introducción
En la arquitectura de software , puede haber muchas capas entre el hardware y el usuario final . El front-end es una abstracción que simplifica los componentes subyacentes al proporcionar una interfaz fácil de usar , mientras que el back-end gestiona el almacenamiento de datos y la lógica de negocio .
Ejemplos
Sitio web de comercio electrónico : La parte frontal es la interfaz de usuario (por ejemplo, páginas de productos, barra de búsqueda), mientras que la parte posterior procesa los pagos y actualiza el inventario.
Aplicación bancaria : La interfaz de usuario muestra los saldos de las cuentas, mientras que el sistema interno gestiona las transacciones seguras y actualiza los registros.
Plataforma de redes sociales : La interfaz de usuario muestra el feed de noticias, mientras que el sistema de gestión almacena las publicaciones y administra las notificaciones.
En telecomunicaciones , el front-end puede considerarse un dispositivo o servicio, mientras que el back-end es la infraestructura que soporta la prestación de servicios.
Por regla general , la interfaz de usuario, o lado del cliente, incluye todos los componentes que el usuario manipula. La parte del servidor, o lado del servidor, suele residir en el servidor , a menudo muy alejado físicamente del usuario.
Definiciones de software
Existen muchas maneras diferentes de definir los términos «front end» y «back end» en el contexto del software. Por ejemplo, en los sistemas de gestión de contenido , el front end se refiere a las vistas que enfrentan los usuarios finales, y el back end se refiere a las vistas que enfrentan los usuarios administrativos. [ 1 ] [ 2 ] De manera similar, en el campo de la síntesis de voz , el front end se refiere a la parte del sistema de síntesis que convierte el texto de entrada en una representación fonética simbólica , y el back end convierte la representación fonética simbólica en sonidos reales. [ 3 ] En los compiladores de lenguajes de programación , el front end traduce el código fuente de la computadora a una representación intermedia , y el back end produce código ejecutable a partir de la representación intermedia. El back end generalmente optimiza para producir código que se ejecute más rápido. La distinción front end/back end también puede separar un analizador que maneja el código fuente de un compilador que genera y optimiza el código ejecutable . Algunos diseños, como GCC , ofrecen múltiples opciones de front end (análisis de diferentes lenguajes fuente ) y múltiples opciones de back end (generación de código para diferentes procesadores de destino ). [ 4 ]
Algunas aplicaciones con interfaz gráfica de usuario (GUI) actúan como una interfaz sencilla para los programas subyacentes con interfaz de línea de comandos (CLI), para evitar que los usuarios tengan que aprender la terminología y los comandos de la CLI .
El desarrollo web como ejemplo
Otra forma de entender las diferencias entre el front-end y el back-end es considerar el conocimiento que cada uno requiere de un desarrollador de software . Los ejemplos que se enumeran a continuación se centran en el desarrollo web .
Interfaz
- Lenguajes de marcado y web como HTML , CSS y JavaScript , así como bibliotecas auxiliares comúnmente utilizadas en esos lenguajes, como Sass o jQuery.
- Manejo de solicitudes asíncronas y AJAX
- Aplicaciones de una sola página con frameworks como React , Angular o Vue.js.
- Rendimiento web (optimización de aspectos como el tamaño máximo de la ventana gráfica, el tiempo de interacción, los FPS de las animaciones y el uso de memoria).
- Diseño web adaptable
- Problemas de compatibilidad entre navegadores y soluciones alternativas
- Pruebas de extremo a extremo con un navegador sin interfaz gráfica.
- Crea sistemas automatizados para transformar y agrupar archivos JavaScript, reducir el tamaño de las imágenes y gestionar otros procesos utilizando herramientas como Webpack y Gulp.js.
- Optimización para motores de búsqueda
- Preocupaciones de accesibilidad
- Herramientas de edición de imágenes como GIMP o Photoshop
- Diseño y creación de interfaces de usuario
parte trasera
- Lenguajes de scripting como PHP , Python , Ruby , Perl y Node.js
- Lenguajes compilados como C# , Java y Go
- capa de acceso a datos
- lógica empresarial
- Administración de bases de datos
- Escalabilidad
- Alta disponibilidad
- Problemas de seguridad, como la autenticación y la autorización.
- Arquitectura de software
- Transformación de datos
- Métodos y software de copia de seguridad
Parte frontal y parte posterior
API
El front-end se comunica con el back-end a través de una API . En el caso de los front-ends web y móviles, la API suele basarse en solicitudes/respuestas HTTP . Una API también puede reducir la carga de procesamiento del front-end mediante el uso de diferentes servicios de back-end para diferentes interfaces de front-end, como en el patrón "Back-end para Front-end" (BFF). [ 5 ]
Definiciones de hardware
En redes informáticas , el término "front-end" se refiere al hardware que conecta los dispositivos a la red, proporciona seguridad (como una DMZ ) o convierte los datos a un formato transportable . El término "back-end" se refiere al hardware que gestiona y transporta los datos dentro de la red.
En el diseño de procesadores , el diseño de la interfaz (front-end) puede referirse a la descripción inicial del comportamiento de un circuito en un lenguaje de descripción de hardware como Verilog , mientras que el diseño de la parte posterior (back-end) puede referirse al proceso de asignar ese comportamiento a transistores físicos en un chip.
Véase también
- Lado del cliente , lado del servidor
- Desarrollo web front-end
- Modelo cliente-servidor
- Experiencia inmediata
- Programación modular
- Patrón del observador
- Patrón de publicación-suscripción
- Tecnología de tracción
- Tecnología de empuje
- Llamada a procedimiento remoto
- Interfaz de programación de aplicaciones (API)
- Pila de soluciones
Referencias
- ↑ "Front End vs Back End de tu sitio web: todo lo que necesitas saber" . DOJO Creative . 7 de febrero de 2020. Archivado del original el 1 de septiembre de 2022. Consultado el 31 de agosto de 2022 .
- ↑ Thapliyal, Vimal. "Diferencia entre MVC de frontend y backend – Joomlatuts" . joomlatuts.net . Archivado del original el 30 de diciembre de 2016. Consultado el 30 de diciembre de 2016 .
- ↑ Gutiérrez--Osuna, Ricardo. "L18: Síntesis de voz (backend)" (PDF) . tamu.edu . Universidad de Texas A&M. Archivado del original (PDF) el 14 de febrero de 2019. Recuperado el 29 de diciembre de 2016 .
- ↑ Bin Muhammad, Rashid. "Notas sobre sistemas operativos" . www.personal.kent.edu . Universidad Estatal de Kent. Archivado del original el 31 de agosto de 2018. Recuperado el 30 de diciembre de 2016 .
- ↑ Wickramarachchi, Viduni (24 de febrero de 2021). "El patrón BFF (Backend para Frontend): una introducción" . Fragmentos . Archivado del original el 27 de marzo de 2024. Recuperado el 13 de noviembre de 2021 .
- Arquitectura de software
- Terminología de ingeniería de software