¿Debo usar un marco MVC de back-end o front-end para desarrollar una aplicación web?

Hola,

Antes de responder a su pregunta, debo decirle que soy un desarrollador de aplicaciones web backend, que trabajo principalmente con Java, a veces PHP. Así que no se sorprenda cuando le cuente, estoy sesgado hacia la estrategia de desarrollo de aplicaciones web de back-end.

He visto algunos de los marcos MVC front-end disponibles, el más conocido es Backbone, React y Angular JS y la primera pregunta que me hago todo el tiempo es, ¿por qué realmente necesitaría algo como esto? Además de eso, ¿por qué realmente necesitaría un marco para escribir el mismo javascript que he estado escribiendo todos estos años normalmente? He tenido estos debates con muchas personas en mi círculo de amigos, así que sé que probablemente terminaré con muchas críticas aquí también.

Ahora que ya le he dicho en qué posición me encuentro con este MVC de front-end, también debería decirle que para decidir si una aplicación web debe tener un MVC de front-end o back-end, lo primero que debe considerarse es lo que hace el sitio web. Una aplicación como Facebook o Google que tiene millones de solicitudes de servidor por minuto podría funcionar bien con un patrón mvc de front-end que significaría solicitudes más bajas a sus propios servidores y parte del trabajo de procesamiento realizado por los propios clientes. Lo que esto significaría es un cliente más lento y una entrada de administrador de tareas mucho más activa para el navegador del cliente. Entonces, si cree que su aplicación web tiene el potencial de que una gran cantidad de usuarios accedan de manera paralela a los datos de sus servidores, entonces diría que un MVC front-end será bueno.

Por último, la seguridad siempre es un problema cuando se trata de MVC de fronde end. Nunca construiría un sitio web que solo envíe todos los datos al front-end y use solo javascript para decidir la lógica comercial y mostrar los datos. Para la lógica de negocios crítica, definitivamente sugeriría un enfoque de back-end.

Espero poder ofrecer algunas sugerencias útiles.

Sugeriría que depende en gran medida del propósito del proyecto. ¿Es este un ejercicio de aprendizaje? ¿Es este un sitio legítimo que desea escalar a millones de usuarios concurrentes? ¿Tiene otras preocupaciones tecnológicas o de alojamiento?

Si es un proyecto simple para aprender sobre el desarrollo de aplicaciones web, o si ya conoce el desarrollo front-end, probablemente haría un marco MVC de back-end. Del mismo modo, si ya conoce el back-end y desea explorar el front-end, mire algo como AngularJS o React.

Si está buscando construir algo “real” que se adapte a toneladas de usuarios, puede querer ambos, para que pueda escalar su codificación frontal (y / o servirlo desde un CDN) según sea necesario, o escalar el back-end según sea necesario.

Como lo mencionó Chetan, querrá tomarse en serio la seguridad web de cualquier manera, así que definitivamente busque en la lista de los diez principales de OWASP y aprenda cómo proteger su sitio a través de sus enseñanzas. Pero, según la respuesta de Chetan, si está escribiendo un código que “solo envía todos los datos al front-end y usa solo javascript para decidir la lógica comercial”, entonces claramente lo está haciendo mal. 🙂 Su back-end siempre debe determinar un alcance limitado de datos y SOLO enviar el mínimo de datos que necesita. Esto también ayudará con la escalabilidad.