¿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.

More Interesting

¿Puedo obtener más de 1 rupia lakh por mes si voy a ser un desarrollador de pila completa con Ruby on Rails como una habilidad de fondo?

¿Son los desarrolladores de back-end más respetados que los desarrolladores de front-end?

Soy un desarrollador de Android que pasa a un rol de servidor de fondo. ¿Qué cosas debo aprender primero?

¿Necesita crear un backend para un sitio web de cartera personal o es suficiente HTML / CSS / Javascript?

¿Cómo puedo convertirme en desarrollador web front-end y back-end? Actualmente sé HTML, CSS, hice un poco de Java y Ruby on rails. ¿Cuántas horas necesito?

¿Qué lenguaje de programación de backend debería aprender en 2016?

¿Los desarrolladores de stack completo se centran en backend o frontend?

¿Qué debería preferir para el backend del desarrollo web: Python o Node.js?

¿Me aconseja codificar mi back-end (usando una arquitectura LAMP) o seleccionar un BaaS (Firebase) para mi proyecto de medición de rendimiento de banda ancha?

Cómo hacer una aplicación Java que use una base de datos en el back-end

¿Cuál es tu stack para el desarrollo de backend?

¿Dónde está la línea entre el back end y el front end?

Soy el único desarrollador de back-end de una startup web. ¿Cuánta seguridad debo saber?

¿Cómo y por qué se usa C ++ para los servicios de back-end?

¿Hay alguna forma de adivinar qué marco de back-end puede usar un sitio? ¿Qué tipo de pistas o patrones se pueden encontrar en el marcado o en otro lugar para regalar algunos de los marcos más conocidos como Rails o Django?