¿Cuál es la definición correcta del desarrollo back-end y front-end?

Yo propondría que ambas perspectivas son potencialmente correctas. Sin embargo, también creo que “atrás y adelante” son una definición demasiado floja en el desarrollo moderno. Hay más de dos zonas, ya que hay muchos niveles de desarrollo que afectan su perspectiva.

Tampoco limitaría la definición al lenguaje utilizado. Hay un número sorprendente de sistemas de fondo que pueden ejecutarse solo en JavaScript. PHP, por ejemplo, se ejecuta en el lado del servidor, pero a menudo genera directamente HTML (y generalmente sobre la marcha) para representar el código orientado al usuario. Entonces, ¿es PHP front-end o back-end?

Sin embargo, para estas capas específicas, diría que “front-end” debería aplicarse más generalmente al código que tiene una influencia directa en las vistas y los componentes interactivos de una aplicación o sitio web. Esto incluirá código que afecta lo que ve el usuario y con lo que puede interactuar. El código de “back end” es generalmente un código que se ejecuta en el lado del servidor para controlar y administrar datos sin intención de interacción del usuario.

Pero en general, creo que la mejor definición es no limitar la división al frente y atrás exclusivamente. Amplíelo para referirse a “código UI” y “código no UI” combinado con varios niveles intermedios de datos. Un sitio de WordPress, por ejemplo, puede tener código relacionado con la interfaz de usuario en el tema, interactuando con código que es a la vez manipulador de la base de datos y la interfaz de usuario, pero que también funciona con otras fuentes de datos externas a través de llamadas API. Eso hace que parte del código de WordPress sea “back-end”, pero también se comunica con otro “código de back-end” en otros lugares, por lo que no es exclusivamente frontal y posterior … también hay niveles intermedios, y las líneas a menudo son borrosas.

Utilizo tu definición, personalmente, como desarrollador.

Pero he escuchado la otra definición en términos de trabajo de oficina: “funciones de back office” son pantallas de administración donde los miembros del personal pueden ajustar los registros de los clientes. Estos pueden aparecer en un cliente frente a la interfaz de usuario. Que por lo tanto debe ser ‘front end’

Incluso usando la ‘definición de desarrollador’, es un poco borroso.

La aplicación y el almacenamiento de datos son claramente backend.

Pero las aplicaciones web a menudo generan html sobre la marcha, creando así el diseño de interfaz de usuario frontal en la parte posterior.

Y cosas como Angular se sirven, generalmente, descargando el marco de la CDN de Google, haciendo que el servidor envíe la última versión de su código de pegamento angular de front-end, que solicita JSON desde el back-end. El front-end Angular puede validar la entrada del usuario, que es una función de back-end y, a menudo, necesita conocer, por ejemplo, los límites de longitud de la base de datos.

Entonces hay una superposición considerable aquí.

Pero me gusta pensar en ello como capas de software. El front-end es la lógica de presentación. El backend es lógica de negocios más manipulación de datos.

Aunque el otro muchacho tenía razón, en un contexto diferente

Su definición está de acuerdo con la definición común de código de front-end y backend. El programador senior está equivocado.

Lo que el programador senior se refiere erróneamente como “backend” se denomina comúnmente “páginas de administrador”, “vistas de administrador” o algo similar. Las páginas de administración creadas para administración, operaciones e informes, como cualquier otra aplicación web, generalmente consisten en vistas de front-end (UI) y código javascript que emiten solicitudes HTTP para puntos finales de backend (por ejemplo, C # WebApi).

No se arriesgue a ofender al programador senior al corregir esta idea errónea. Argumentar tales detalles será desagradable. No quieres envenenar futuras oportunidades para aprender.

La analogía del front office / back office es bastante buena.

Frente = frente al cliente

Atrás = todo lo demás

Por supuesto, como señala alguien más, el middleware y las cosas de la red difuminan un poco la línea.

Cuando se trata de desarrollo de software, su definición es correcta.

Sin embargo, he visto el resp. definición de back-office que señala la parte de un producto que no es visible para los clientes. Por ejemplo, la solución de comercio electrónico consiste en una tienda electrónica (interfaz visible para los clientes) y un back-office (interfaz visible para los empleados).

Depende del punto de vista y debe conocer el contexto para diferenciarse.

No, su definición es correcta, y el otro programador combina estos conceptos con el concepto de back-office.

Por ejemplo, en un sitio de WordPress, los usuarios finales ven el blog / páginas, mientras que el administrador también ve la configuración del sitio, el área de edición de páginas, el área de ajuste de temas, las páginas de administración de complementos, etc. Esa es la oficina administrativa, no el back-end …

¿Realmente importa? Mientras no esté causando malentendidos, a quién le importa cuáles son las definiciones correctas 🙂

¿Y qué pasa si está utilizando una arquitectura de 3 niveles? ¿Entonces tiene un “medio”?

Si hay una necesidad de comunicación precisa, simplemente use los nombres completos, y no solo “backend” y “frontend”. O llámelo “lado del servidor” y “lado del cliente” o algo así, dependiendo de lo que esté tratando de decir …