Должен ли я использовать MVC как на клиенте, так и на сервере?

Я решил использовать шаблон MVC на моем сайте. Итак, теперь я использую фреймворк Backbone.js на своем сайте. Все действия на моем сайте являются ajaxy , поэтому сервер получает данные только от db и сохраняет данные в db.

Нужно ли мне также использовать MVC на стороне сервера? Это все усложняет, не так ли?

Или я могу использовать MVC на стороне клиента и иметь простой сервер api, который только извлекает / сохраняет данные и делает небольшую работу на сервере?

UPD: Я понимаю, что я должен использовать Models на стороне сервера. Но что такое Views for на стороне сервера – если я обрабатываю всю информацию с помощью javascript?

Итак, хорошо ли это, что серверная сторона работает только с сырыми данными – models – она ​​всегда возвращает json и не имеет никакого отношения к html-разметке и другим вещам, связанным с Views ?

Нет, вам не нужно использовать его на стороне сервера, но это поможет с организацией / разделением прикладной и бизнес-логики. В зависимости от масштаба вашего приложения, которое может значительно помочь в будущем.

Ключ просто убедитесь, что вы хорошо организовываете свой код, иначе вы получите монолитную и / или трудноподдерживаемую базу кода.

Редактировать в ответ на редактирование OP:
Представления на стороне сервера будут содержать ваш HTML и любой JavaScript, который может или не может отправлять запросы на сервер. Это предполагает, что вы на самом деле используете PHP для создания страниц, к которым пользователь переходит.

Если у вас есть статическая страница html, которая сама построена с использованием запросов AJAX, вам может и не понадобиться использовать серверные представления вообще. Ваши контроллеры, скорее всего, будут выводить данные JSON. Если это так, это не делает модели и контроллеры менее полезными.

Backbone.js подключает ваше приложение через интерфейс RESTful JSON. Я честно считаю, что он прекрасно работает в сочетании с MVC-каркасом. Если вы создаете RESTful API, вы можете легко управлять сервером CRUD-серверами. Весь ваш серверный код будет отвечать за сохранение и отправку объектов JSON в Backbone.js. Затем разрешите большую часть вашей логики и магии в рамках Backbone.js.

Если вы используете какую-либо из основных фреймворков PHP (CakePHP, Code Igniter, Symfony и т. Д.), Вы уже используете MVC. Если ваша логика на стороне сервера более сложна, чем просто несколько действительно простых скриптов, чем вы, вероятно, должны использовать одну из перечисленных инфраструктур, используя MVC на сервере и клиенте.

Многие (большинство?) Более крупных веб-приложений, создаваемых сегодня, продвигаются к использованию структуры MVC как для клиентского, так и для серверного кода приложения. Это фантастический шаблон для разделения проблем для многих крупных приложений, особенно приложений сервера запросов и ответов и приложений браузера, управляемых событиями.