Тлеющий уголек.js или позвоночник.js для спокойного бэкэнда [закрыто]


Я уже знаю, что Эмбер.js-это более тяжелый подход к весу в отличие от позвоночника.js. Я прочитал много статей об обоих.

Я спрашиваю себя,какой фреймворк работает проще в качестве интерфейса для бэкэнда rails rest. Для позвоночника.js я видел разные подходы к вызову бэкэнда rest. Для ember кажется, что я должен включить еще несколько библиотек, таких как "данные" или "ресурсы". Почему для этого есть две библиотеки?

Так что лучше? Там не много примеров для подключения интерфейса с бэкэндом тоже. Какой хороший рабочий пример для вызова backend rest для этого:

URI: ../restapi/темы ПОЛУЧИТЬ данные для авторизации: администратор/порядок формат: json

3 97

3 ответа:

Вопреки распространенному мнению Эмбер.js-это не "более тяжелый подход" к позвоночнику.js. Это разные виды инструментов, которые нацелены на совершенно разные конечные продукты. Сладкое пятно Эмбера-это приложения, в которых пользователь будет держать приложение открытым в течение длительных периодов времени, возможно, в течение всего дня, а взаимодействие с представлениями приложения или базовыми данными вызывает глубокие изменения в иерархии представлений. Эмбер больше, чем позвоночник, но благодаря Expires,Cache-Control это имеет значение только на первая нагрузка. После двух дней ежедневного использования эти дополнительные 30k будут омрачены передачей данных, раньше, если ваш контент включает изображения.

Backbone идеально подходит для приложений с небольшим количеством состояний, где иерархия представлений остается относительно плоской и где пользователь имеет тенденцию обращаться к приложению нечасто или в течение более коротких периодов времени. Код магистрали остается коротким и сладким, потому что он делает предположение, что данные, поддерживающие DOM, будут выброшены, и оба элементы будут собраны в памяти:https://github.com/documentcloud/backbone/issues/231#issuecomment-4452400 меньший размер позвоночника также делает его более подходящим для кратких взаимодействий.

приложения, которые люди пишут в обеих рамках, отражают эти виды использования: Ember.js приложения включают в себя веб-панель управления Square,Zendesk (по крайней мере, интерфейс агента/продажи билетов), и планировщик Groupon: все приложения, пользователь мог потратить весь день в.

основные приложения фокусируются больше на кратких или случайных взаимодействиях, которые часто являются просто небольшими разделами большей статической страницы: airbnb,Академии Хана,карта и списки Foursquare.

вы можете используйте магистраль, чтобы сделать виды приложений, которые Ember цели (например Rdio) по a) увеличение объема кода приложения, за который вы несете ответственность, чтобы избежать таких проблем, как утечки памяти или зомби события (я лично не рекомендую этот подход) или б) путем добавления сторонних библиотек, таких как костяк.марионетка или копчиком – есть много из этих библиотек, которые все пытаются обеспечить аналогичную перекрывающуюся функциональность, и вы, вероятно, в конечном итоге соберете свою собственную структуру, которая больше и требует больше кода клея, чем если бы вы только что использовали Ember.

в конечном счете вопрос "что использовать" есть два ответа.

Во-Первых, "Что должен ли я использовать, как правило, в своей карьере": оба, так же, как вы в конечном итоге изучите любые инструменты, специфичные для работы, которые вы захотите сделать в будущем. Вы бы никогда не спросили "позвоночник или D3?"; "Позвоночник или уголек" - столь же глупый вопрос.

во-вторых, "что я должен использовать, в частности, на моем следующем проекте": зависит от проекта. Оба будут общаться с сервером Rails с одинаковой легкостью. Если ваш следующий проект включает в себя смесь страниц, созданных сервером с так называемыми " островами богатства" служит основой для JavaScript. Если ваш следующий проект выталкивает все взаимодействие в среду браузера, используйте Ember.

чтобы дать краткий, упрощенный ответ: для спокойного бэкэнда, на данный момент, Вы должны использовать Backbone.

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

на данный момент Ember-Data (который, по-видимому, является механизмом сохранения по умолчанию в Ember) далек от производство готово. Это означает, что он имеет довольно много ошибок и, что важно, не поддерживает вложенные URI (/posts/2/comments/4556 например). Если REST-это ваше требование, то вам придется обойти это на данный момент, если вы выберете Ember (т. е. вам придется либо взломать его, подождать, реализовать что-то вроде Ember-Data с нуля самостоятельно, либо использовать не очень спокойные URI). Эмбер-данные не являются строго частью Эмбера, так что это вполне возможно.

основные различия между ними, помимо размера, в основном:

Эмбер пытается сделать для вас как можно больше, чтобы вам не пришлось писать столько кода. Он очень иерархичен и, если ваше приложение также очень иерархично, скорее всего, будет хорошо вписываться. Поскольку это делает так много для вас, может быть трудно понять, откуда берутся ошибки и почему происходит неожиданное поведение (есть много "магии"). Если у вас есть приложение, которое естественным образом вписывается в тип приложения, которое Эмбер ожидает, что вы будете строить, хотя, скорее всего, это не будет проблемой.

Backbone пытается сделать как можно меньше для вас, чтобы вы могли рассуждать о том, что происходит, и построить архитектуру, которая соответствует вашему приложению (а не создавать приложение, которое соответствует архитектуре используемой вами структуры). Это намного легче начать, но, если вы не будете осторожны, вы можете в конечном итоге с беспорядком очень быстро. Он не делает такие вещи, как вычисляемые свойства, события автоматической развязки, и т. д. и оставляет их вам, поэтому вам нужно будет реализовать много вещей самостоятельно (или, по крайней мере, выбрать библиотеки, которые делают это для вас), хотя это скорее весь смысл.

обновление: похоже, что в последнее время Ember теперь поддерживает вложенные URI, поэтому я полагаю, что вопрос сводится к тому, насколько вам нравится магия и подходит ли Ember для вашего приложения.

Я думаю, что ваш вопрос скоро будет заблокирован :) есть несколько раздоры между этими двумя системами.

в основном позвоночник не делает много вещей, и именно поэтому мне это нравится : вам придется много кодировать, но вы будете кодировать в нужном месте. Эмбер делает много вещей, так что вам лучше смотреть, что он делает.

Обсуждение сервера является одним из немногих вещей, которые делает Backbone, и он отлично справляется с этим. Поэтому я бы начал с позвоночника, а затем дайте попробовать угли, если вы не полностью удовлетворены.

вы также можете слушать этот подкаст где Джереми Ашкенас, создатель позвоночника, и Иегуда Кац, член Эмбер, имеют хороший обсуждение