¿Es efectivo tener un back-end y front-end separados?

Dividir el desarrollo en archivos separados es probablemente mejor que tener todo el desastre en un solo archivo. Pero todos los archivos estarían en el mismo servidor (o en varios servidores si está utilizando una red de entrega de contenido).

Poner el código del lado del servidor en una computadora y el código del lado del cliente en otra computadora es mucho más eficiente. Necesita código para el back-end para obtener el front-end, para enviarlo al cliente (o código para redirigir a un archivo en particular en la “computadora front-end”) que no necesita si todos los archivos son atendidos por un servidor único (Incluso una llamada API o una llamada curl es más código, lo que significa más tiempo para desarrollar y depurar, y más posibilidades de errores).

Mezcla el código de front-end y back-end en un solo archivo, a menos que sea necesario (el código de front-end no se ejecutará en el servidor, por lo que el código de back-end debe acceder a la base de datos en el lado del servidor, luego crear el front-end -el código final con los datos que se recuperaron) no es una buena idea, pero en qué computadora se encuentran sus archivos HTML, CSS y, por ejemplo, PHP, es una cuestión diferente.

Tener 2 servidores no significa tener 2 computadoras (puede instalar 2 copias de, por ejemplo, Apache, en la misma computadora, escuchando en diferentes puertos), pero si va a instalarlas en 2 computadoras, por supuesto, se duplica no solo el costo de comprar las computadoras, sino también ejecutarlas y mantenerlas (incluidas las copias de seguridad externas). Y si vas a usar un CDN, eso significa duplicar ese costo también.

La respuesta de Titus Wiguno es bastante acertada, también me gustaría agregar que, en términos de escalabilidad futura, probablemente sería una buena idea separar el back-end y el front-end. IE, si se está comunicando con el back-end a través de API, entonces sería más fácil y menos lento escalar su aplicación a diferentes plataformas móviles.

Depende de lo que quieras decir con “efectivo”. En términos de desarrollo y costo, ciertamente no es “efectivo”. Probablemente duplicaría el costo (es más complicado construir una aplicación HTML que se conecte al backend a través de API; y lo más probable es que requiera al menos 2 equipos diferentes para desarrollarse (la depuración de la aplicación frontend es otro monstruo para la aplicación backend).

En términos de tecnicismo, diría que es preferible dividir el desarrollo de estos dos. Es más claro porque podría saber qué parte se comporta mal: los datos (back-end) o la presentación (frontend).

Además, en términos de rendimiento, diría que también es preferible dividir el desarrollo. Separar los servidores también ayudaría al rendimiento (aunque NO es obligatorio). El “servidor” frontend solo servirá archivos estáticos, por lo que la presentación / IU llegará más rápido y parecerá más receptivo a los usuarios finales. Y también facilitará el “servidor” del servidor al servir menos datos.

Estás mezclando un poco las cosas, pero déjame aclararte algo.

El front-end se puede servir a través de:

  1. Representación dinámica del lado del servidor, (mire los tipos MVC de framewoks / arquitecturas): antigua forma de hacer aplicaciones web
  2. aplicación estática de una sola página (ng, react, vue y similares) entregada desde su servidor o un CDN, respaldada por su API. – nueva forma de aplicaciones web progresivas

Tenga en cuenta que un sistema separado no tiene que ser 2 servidores. Puede servir partes integradas de front-end (HTML, css, js) desde una ruta en su servidor.

Hola,

Es aconsejable separar el back-end y el front-end. Además de un código más consistente, esta funcionalidad le permite escribir código con más profundidad y alcance. Cuando sus desarrolladores escupen código en múltiples repositorios, puede medirlos de forma independiente. Por ejemplo, puede volcar el código del cliente en un CDN mientras hace muchos servidores AWS para el backend. Esta flexibilidad en el escalado puede ahorrar dinero en alojamiento, costos de hardware y aumenta su capacidad de modificar la configuración a medida que crece su base de usuarios.

Además, varias personas están trabajando en los repositorios discretos, que es una buena manera de tener un desarrollador trabajando en la API mientras otro está trabajando en el cliente, es decir, si han acordado la salida JSON.

Espero que haya encontrado esta información útil para su propio proceso de programación.

Desarrollo web Aplicaciones web Desarrollo de sitios web personalizados Empresa | Servicios de desarrollo web EE.UU.

Si, se recomienda. Pero depende en gran medida de la situación y el tipo de público al que se dirige. Si está creando un sistema web al que accederán diferentes personas en diferentes dispositivos, es posible que tenga problemas cuando la gente empiece a quejarse de que su obra maestra es inútil solo porque están utilizando Opera Mini y similares. Sin embargo, si sus usuarios objetivo son conocidos, digamos que está creando un sistema de administración, es bueno separar el front-end y el back-end. Hace la vida más fácil.