Подтвердить что ты не робот

Angular.js Backbone.js и другие библиотечные js-библиотеки MV *?

Я новичок в веб-приложении и, более конкретно, в этом шаблоне MV*. Мы создаем веб-приложение, и мы думаем о выходе из jQuery, но не полностью, но мы пытаемся реализовать язык на стороне клиента с поддержкой MVC, MVVM или MVP. В основном то, что отделяет представления от модели. Будучи новичком в этом шаблоне MV*, я наткнулся на на этом сайте.

В основном это список (почти!) всех клиентских языков/фреймворков, которые поддерживают этот шаблон MV*, и после посещения его я действительно смущен. Потому что согласно этому сайту..

В конце дня Ember.js является единственной структурой, которая имеет все, что я желаю. Недавно я портировал относительно небольшой Backbone.js приложение к Ember.js и, несмотря на небольшую производительность проблемы, я намного счастливее с полученной базой кода. бытие защищал Иегуда Кац, сообщество вокруг Ember.js также удивительно. Это определенно основа, на которую нужно следить.

Но на SO я нашел этот, и это заставляет меня думать, что angular намного лучше, а на SO снова, this, и this, что заставляет меня думать, что это может быть основой того, что я ищу.

Чтобы ухудшить ситуацию, тесты показывают совершенно другой результат. Здесь

http://jsfiddle.net/HusVw/1/ Backbone clear winner

http://jsfiddle.net/ericf/NrpcQ/ Backbone winner again

http://jsperf.com/angular-vs-knockout-vs-extjs-vs-backbone/2 angular winner for less data for more its knockout

http://jsperf.com/knockout-js-vs-direct-dom-manipulation/3 Backbone again

http://jsperf.com/angular-vs-knockout-vs-ember/33 no way its ember as the site mentioned

Итак, в основном, это меня полностью сбивает с толку, я не могу решить, что в веб-названии я должен изучить, и что мне следует реализовать на сайте. Как в тестах Backbone четко выделяется, но я много слышал о knockout, но ссылки SO, о которых я говорил, говорят о angular? Я знаю, что это может зависеть от приложения, которое я сейчас разрабатываю, но мне нужен более широкий взгляд, что было бы полезно не только для этого проекта, но и на более длительный срок? В таком случае вы предпочтете, какие рамки? Или я должен просто изучить их все? (Jk, не может действительно сделать это в правдоподобное время.)

Чтобы сделать все больше, я слышал о dart и wiki говорит..

Цель Dart - "в конечном счете заменить JavaScript как лингва франка веб-разработки на открытой веб-платформе".

Итак, если js будет заменен, почему хак я даже рассматриваю возможность изучения этих js-библиотек/фреймворков?

Итак, в основном, все это испортилось, и я совершенно смущен? Может ли кто-нибудь помочь мне решить?

4b9b3361

Ответ 1

Вероятно, нет объективного ответа, но здесь мои 2 цента:

Магистраль обычно приводит к значительно более коротким базам кода, которые сложнее поддерживать. Подобно анекдоту в ваших ссылках, я работал над одним проектом, где код сократился с 2500 строк с Backbone до 600 строк с помощью Angular. Вероятно, нокаут дал бы столь же маленькие (= хорошие) результаты. Мои коллеги отошли от Backbone to Knockout и были намного счастливее после этого.

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

Что касается тестов, которые вы упомянули: они вряд ли объективны, поскольку они подчеркивают один очень конкретный вариант использования. Кроме того, они были опубликованы автором самой Backbone, поэтому, очевидно, они показывают, что Backbone в хорошем свете. Для обычных пользовательских интерфейсов производительность не должна быть проблемой независимо от того, какой из 3 (Backbone, Angular, Knockout) вы выберете. Одно предостережение для Angular: если вы хотите динамически отображать более 2000 элементов на своей странице, это может быть проблематично (см. Ответ создателя Angular здесь: Как данные обязательная работа в AngularJS?).

О Дарте: Его цель - быть языком, а не только структурой MV * в пределах языка. Это совершенно другой зверь, и если вам просто нужна структура MV *, Дарт будет излишним. Кроме того, Дарт все еще очень молод и не поддерживается в большинстве браузеров.

Ответ 2

Ну, во-первых, действительно нет никакого "хорошего" ответа на этот вопрос. Все библиотеки MVC хороши, если вы спросите их создателей: p Тем не менее, я бы рекомендовал вам начать читать примеры в TODO-MVC, чтобы вы могли видеть, сколько кода требуется для простого TO-DO веб-приложение и насколько он сложный. Затем решите, с чем вы согласны. Моя личная рекомендация - Магистраль. Кроме того, есть несколько дополнительных библиотек, которые будут делать (почти) магические вещи, например Backbone Nested.

Удачи!