Node.js Шаблонизаторы и MVC фреймворки. Versus или Feat?
Изучаю активно Node.js и пишу прототип веб-сервиса. Основой моих познаний является скринкаст Илья Кантора, о котором все разработчики на ноде, я думаю, наслышаны.
Так вот Илья не говорит ничего о т.н. (если я ничего не путаю) клиентских MV* фреймворках, таких как Angular, Ember, Backbone и иже с ними. Но есть же MEAN stack, признанный среди монстров набор технологий, среди которых упомянутый Angular имеется.
И я не могу понять, зачем эти фреймворки собственно нужны? Являются ли они расширением функций шаблонизаторов или это другая песня?
Опишите, пожалуйста, в двух словах, что к чему с этими фреймворками, ждет ли меня грабля из-за того, что я их не использую, или можно разрабатывать простые и почти простые сервисы без подобных фреймворков?
Если вы не строите single-page application, берите любой шаблонизатор (swig, jade) и вперед. Клиентские фреймворки служат для организации данных и кода на стороне клиента, для общения с backend-сервером. Илья Кантор, кстати говоря, в своих скринкастах таки использует шаблонизатор ejs-locals, но он уже никем не мейнтейнится.
P.S. В скринкасте про express у Ильи далеко не самые изящные решения, с той же подгрузкой моделей например. Многие интересные вещи можно посмотреть в коде у того же MEAN - почитайте его код.
Во фронтэнд фреймворках почти полностью организована MVC структура - бэкэнд только выдаёт инфу по запросу (например данные по товарам, данные для авторизиции), получается работает как REST API. Шаблонов в бэкэнде уже нет. Можно по идее часть логики оставить в бэкэнде.
Из плюсов (на мой дилетантский взгляд) - повышение скорости работы веб-приложение, потому что догружаются только данные. Поэтому приложения очень похожи на родные приложения тех же смартфонов (и поэтому для них придумали термин Single Page Application)
Использование этих фронтэнд фреймворков вовсе необязательно - просто у вас будет по старинке view генерироваться на сервере.