¿Qué es un buen diseño de arquitectura para aplicaciones web?

Gracias a todos por sus respuestas.
Entiendo que los datos deben convertirse en modelo para encapsular cualquier información que haga que el modelo sea significativo, y la vista no debe tener lógica comercial.
Actualmente estoy desarrollando una aplicación web usando Ember.js para front-end y Node.js para back-end. Ambos siguen el modelo MVC. Bueno, Ember.js es MVVM – Model View ViewModel, que ViewModel es en realidad un controlador para convertir los datos del modelo en información de vista.
Como está presente, el flujo general es que Ember.js solicitaría datos del back-end de Node.js, Node luego obtiene datos de mi DB (mySQL) y los serializa en su modelo, luego regresa a Ember. Ember toma ese modelo, serializa en los modelos de Ember y muestra.
Quiero preguntar si los modelos en mi Node back-end son idénticos a los de mi Ember front-end. Porque a veces, encuentro que el modelo Node devuelve es demasiado “grande” y tiene demasiada información innecesaria en comparación con lo que lo uso en mi front-end Ember. Por ejemplo, obtengo la lista completa de productos, solo para completar la lista de nombres de productos en un cuadro de selección de un formulario.

“Necesitamos modelos SMART, controladores THIN y vistas DUMB”

En última instancia, lo que esto significa es que es lo mejor, y estoy lanzando esa palabra con demasiada soltura, el diseño de arquitectura es uno que se enfoca en tener un back-end bien diseñado que haga que los datos sean fácilmente mutables y accesibles. Eso no quiere decir que esté haciendo todo el trabajo pesado; debe diseñar el back-end de manera que los controladores puedan facilitar los datos. El front-end puede tener sus propios procesos, pero manténgalo al mínimo.

More Interesting

¿Cuál es la mejor herramienta de edición de video basada en la web?

¿Cuál es la mejor tecnología EDI o métodos web? ¿Y también Java J2EE o mainframes?

¿Cuáles son algunos de los mejores marcos de desarrollo web?

¿Para qué tipos de tareas son más adecuados los diferentes sitios de colaboración y crowdsourcing?

¿Existe alguna herramienta que envíe el contenido web a mi computadora o mi Kindle?

¿Qué tan fácil / difícil es desarrollar una aplicación nativa de su aplicación web (Ruby on Rails)?

¿Cuáles son las consideraciones clave al elegir una tecnología de base de datos como PostgreSQL vs MongoDB?

¿Cuál es la mejor aplicación basada en la web "Getting Things Done"?

¿Cómo realizan las personas la implementación automatizada de las aplicaciones web de Python en AWS?

Al desarrollar una aplicación, ¿es una mala forma o es ampliamente aceptada e incluso alentada a emular las características de la interfaz de usuario de otras aplicaciones exitosas?

¿Qué es una buena aplicación para administrar el calendario de contenido de un sitio web?

¿Es mejor hacer pruebas beta públicas o privadas para una nueva aplicación web? ¿Por qué?

Si tuviera que estructurar una base de datos para una aplicación web con una suscripción, ¿cómo sería?

Si tomas un trabajo de desarrollador front-end, ¿puedes obtener un puesto completo de Rails o JavaScript algún día, o te encasillaría para hacer principalmente front-end a menos que hicieras un estudio sustancial?

¿Por qué no puedo reproducir una canción en Pandora? O si puedo, ¿cómo lo hago?