php - ¿Debo usar MVC tanto en el cliente como en el servidor?
model-view-controller backbone.js (3)
Decidí usar MVC Pattern en mi sitio. Entonces, ahora uso el framework Backbone.js en mi sitio. Todas las acciones en mi sitio son ajaxy
, por lo que el servidor solo obtiene datos de db y guarda los datos en db.
¿Debo usar MVC también del lado del servidor? Está complicando todo, ¿no?
¿O puedo usar MVC en el lado del cliente, y tengo una API simple del servidor, que solo recupera / guarda datos y hace un pequeño trabajo de servidor?
UPD: entiendo que debería usar Models
en el lado del servidor. Pero, ¿qué son las Views
para el lado del servidor, si represento toda la información con javascript?
Entonces, ¿es un buen patrón, que el lado del servidor solo funciona con datos brutos - models
- siempre devuelve json
, y no tiene relación con html-markup y otras cosas relacionadas con Views
?
Backbone.js conecta su aplicación a través de una interfaz RESTful JSON. Honestamente encuentro que funciona maravillosamente en conjunto con el framework MVC. Si construyes una API RESTful, puedes dejar que el servidor administre las actualizaciones de CRUD con bastante facilidad. Todo el código del lado del servidor será responsable de guardar y devolver objetos JSON a Backbone.js. Entonces deja que la mayor parte de tu lógica y tu magia sucedan dentro del framework Backbone.js.
No, no necesita usarlo en el lado del servidor, pero ayudará con la organización / separación de la aplicación y la lógica comercial. Dependiendo de la escala de su aplicación, eso podría ayudar muchísimo en el futuro.
La clave es asegurarse de que organizas bien tu código de back-end; de lo contrario, terminarás con una base de código monolítica y / o difícil de mantener.
Edite en respuesta a la edición de OP:
Las vistas del lado del servidor contendrán su HTML y cualquier JavaScript que pueda o no realizar solicitudes al servidor. Esto supone que en realidad está usando PHP para construir las páginas a las que un usuario navega.
Si tiene una página html estática que se crea utilizando las solicitudes AJAX, es posible que no necesite usar ninguna vista del servidor. Es muy probable que sus controladores estén generando datos JSON. Si este es el caso, no hace que los modelos y controladores sean menos útiles.
Si está utilizando cualquiera de los principales frameworks de PHP (CakePHP, Code Igniter, Symfony, etc.), entonces ESTÁ usando MVC. Si su lógica del lado del servidor es más compleja que solo unas pocas secuencias de comandos realmente simples, entonces probablemente deba usar uno de los marcos listados, usando MVC en el servidor y el cliente.
Muchas (¿la mayoría?) Aplicaciones web más grandes que se están construyendo en la actualidad se están moviendo hacia el uso de un marco MVC para el código de aplicación tanto del lado del cliente como del lado del servidor. Es un patrón fantástico para separar las preocupaciones de muchas aplicaciones grandes, especialmente aplicaciones de servidor de solicitud / respuesta y aplicaciones de navegador basadas en eventos.