Какова цель backbone.js?

Я попытался понять полезность backbone.js на его сайте http://documentcloud.github.com/backbone, но я так и не понял многого.

Может ли кто-нибудь помочь мне, объяснив, как это работает и как это может быть полезно для написания лучшего JavaScript?


person sushil bharwani    schedule 24.03.2011    source источник
comment
Это фреймворк MVC. Он побуждает вас абстрагировать ваши данные в модели, а ваши манипуляции с DOM - в представления и связывать их вместе с помощью событий.   -  person Raynos    schedule 24.03.2011
comment
Как представление может обрабатывать события в контексте MVC? Это то, что backbonejs.org утверждает во введении.   -  person    schedule 10.08.2012
comment
Стоит учиться. Мне было трудно начать, но после того, как я преодолел несколько препятствий в процессе обучения, это действительно не так уж и сложно. Начните с демонстрации Wine Cellar.   -  person kmitchel46725    schedule 12.11.2012
comment
В контексте Backbone вид выполняет роль контроллера. Он прислушивается к событиям DOM и при необходимости передает их моделям. Он также отслеживает изменения в ваших моделях и коллекциях и соответствующим образом перерисовывает DOM. Backbone - это шаблон MV, но подразумевается C. Если бы Backbone был Rails, шаблон был бы представлением, а представление было бы контроллером.   -  person superluminary    schedule 04.07.2014
comment
Я думал, что это фреймворк MVVM, поскольку он на самом деле не предоставляет контроллеров.   -  person SoluableNonagon    schedule 02.09.2015
comment
И следующий вопрос: что случилось с Backbone? Почему больше не жарко? Конечно, это проще, чем Angular   -  person slevin    schedule 12.01.2016


Ответы (15)


Backbone.js - это, по сути, сверхлегкий фреймворк, который позволяет структурировать код Javascript в стиле MVC (модель, представление, контроллер), где ...

Модель - это часть вашего кода, который извлекает и заполняет данные,

Представление - это HTML-представление этой модели (представления меняются по мере изменения модели и т. д.)

и дополнительный Контроллер, который в этом случае позволяет вам сохранять состояние вашего Javascript-приложения через URL-адрес хэшбэга, например: http://twitter.com/#search?q=backbone.js

Некоторые преимущества, которые я обнаружил с Backbone:

  • Больше никаких Javascript Spaghetti: код организован и разбит на семантически значимые файлы .js, которые позже объединяются с помощью JAMMIT.

  • Нет больше jQuery.data(bla, bla): не нужно хранить данные в DOM, вместо этого храните данные в моделях

  • привязка событий просто работает

  • чрезвычайно полезная служебная библиотека Underscore

  • Код backbone.js хорошо документирован и отлично читается. Открыл мне глаза на ряд техник кода JS.

Минусы:

  • Мне потребовалось время, чтобы обдумать это и понять, как применить это к моему коду, но я новичок в Javascript.

Вот набор отличных руководств по использованию Backbone с Rails в качестве серверной части:

CloudEdit: учебное пособие по Backbone.js с Rails:

http://www.jamesyu.org/2011/01/27/cloudedit-a-backbone-js-tutorial-by-example/

http://www.jamesyu.org/2011/02/09/backbone.js-tutorial-with-rails-part-2/

p.s. Существует также замечательный класс Collection, который позволяет вам работать с коллекциями моделей и имитировать вложенные модели, но я не хочу сбивать вас с толку с самого начала.

person Vlad Gurovich    schedule 26.03.2011
comment
еще один полезный учебник: coenraets.org / blog / 2012/01 / - person Jeffrey Nicholson Carré; 22.11.2012
comment
Это неверный ответ. Backbone - это не фреймворк MVC. Это фреймворк MV *. Понимание основных компонентов очень важно. И у него нет контроллеров. Удачи. - person ; 21.07.2014
comment
Чтобы повторить, сама библиотека Backbone не имеет контроллеров, хотя Джереми Ашкенас сказал, что объекты View как бы занимают их место, поскольку они являются объектами JavaScript, которые владеют моделями и перетасовывают данные в интерфейсную часть и из нее. Конечно, ничто не мешает вам реализовать Контроллер, Сервис, даже ViewModel, если вы того пожелаете, это просто JavaScript. - person superluminary; 27.08.2014
comment
Что такое ДЖАММИТ? ɯnɯıuıɯ ʇunoɔ ɹǝʇɔɐɹɐɥɔ - person user1717828; 11.12.2014
comment
RE: jQuery.data (bla, bla): нет необходимости хранить данные в DOM IIRC, jQuery все равно хранит их в памяти. т.е. он не устанавливает атрибуты data- обратно в элементы DOM. (Итак, если ваш HTML-код имел data- атрибуты при загрузке страницы, и они были изменены, DOM и представление в памяти были бы OOS, но вы все равно должны работать с данными in-mem) - person JoeBrockhaus; 10.02.2015

Если вы собираетесь создавать сложные пользовательские интерфейсы в браузере, вы, вероятно, в конечном итоге обнаружите, что изобретаете большинство частей, из которых состоят такие фреймворки, как Backbone.js и Sammy.js. Итак, вопрос в том, создаете ли вы что-то достаточно сложное в браузере, чтобы заслужить его использование (чтобы вы сами не изобретали то же самое).

Если то, что вы планируете создать, представляет собой то, что пользовательский интерфейс регулярно меняет способ отображения, но не отправляется на сервер для получения целых новых страниц, то вам, вероятно, понадобится что-то вроде Backbone.js или Sammy.js. Ярким примером чего-то подобного является GMail от Google. Если вы когда-либо использовали его, вы заметите, что он загружает один большой кусок HTML, CSS и JavaScript при первом входе в систему, а затем все происходит в фоновом режиме. Он может переключаться между чтением электронной почты и обработкой почтового ящика и поиском и обратно по всем сообщениям, даже не запрашивая визуализацию целой новой страницы.

Именно такие приложения эти фреймворки упрощают разработку. Без них вы либо в конечном итоге соберетесь объединить разнообразный набор отдельных библиотек, чтобы получить части функциональности (например, jQuery BBQ для управления историей, Events.js для событий и т. Д.), Либо вы в конечном итоге создадите все самостоятельно. а также необходимость поддерживать и тестировать все самостоятельно. Сравните это с чем-то вроде Backbone.js, тысячи людей смотрят его на Github, сотнями форков, над которыми люди могут работать, и сотнями вопросов, которые уже заданы и на которые даны ответы здесь, в Stack Overflow.

Но все это не имеет значения, если то, что вы планируете построить, недостаточно сложно, чтобы окупить кривую обучения, связанную с фреймворком. Если вы все еще создаете сайты на PHP, Java или что-то еще, где внутренний сервер по-прежнему выполняет всю тяжелую работу по созданию веб-страниц по запросу пользователя, а JavaScript / jQuery просто мешает этому процессу, вы не t будут нужны или еще не готовы для Backbone.js.

person John Munsch    schedule 30.08.2011
comment
Спасибо за сравнение с Gmail. Для меня это был простой способ понять, что мне не нужно углубляться в детали для сайта, который я разрабатываю. - person Eric Hu; 16.09.2011
comment
+1 за упоминание о том, что вы в конечном итоге сами напишете что-то вроде backbone.js, если ваш проект станет достаточно большим: re 10-е правило Гринспена - person Matthew Lock; 23.03.2012
comment
Если вы используете PHP или что-то подобное, как конечную точку для веб-службы, то вы не используете 80 или 90% традиционной структуры веб-разработки в стиле запроса / ответа. Таким образом, есть большая разница в том, как создается такое приложение по сравнению с более традиционным веб-приложением. - person John Munsch; 19.12.2012
comment
Спасибо, Джон, за твой ответ, это действительно здорово - person sushil bharwani; 13.03.2013
comment
Ссылка на Gmail действительно открыла мне глаза. Спасибо! - person T.Kaukoranta; 01.08.2013
comment
Большое спасибо, и я думаю, что в большинстве случаев людям нужен обычный способ разработки, такой как PHP / Rails или что-то в этом роде! Грубое применение Backbone только усложняет задачу. - person 尤川豪; 11.02.2014

Backbone is...

... очень небольшая библиотека компонентов, которую вы можете использовать, чтобы упорядочить свой код. Он поставляется в виде одного файла JavaScript. Не считая комментариев, он содержит менее 1000 строк фактического JavaScript. Это грамотно написано, и вы можете прочитать все за пару часов.

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

Если у вас есть API, Backbone имеет несколько полезных функций, которые помогут вам общаться с ним, но вы можете использовать Backbone для добавления интерактивности к любой статической HTML-странице.

Backbone is for...

... добавление структуры в JavaScript.

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

  1. Где я буду хранить свои данные?
  2. Где я буду размещать свои функции?
  3. Как мне соединить свои функции вместе, чтобы они вызывались осмысленно и не превращались в спагетти?
  4. Как сделать так, чтобы этот код поддерживали разные разработчики?

Backbone пытается ответить на эти вопросы, предоставляя вам:

  • Модели и коллекции, которые помогут вам представлять данные и коллекции данных.
  • Представления, чтобы помочь вам обновить DOM при изменении данных.
  • Система событий, позволяющая компонентам слушать друг друга. Это сохраняет ваши компоненты отсоединенными и предотвращает спагеттификацию.
  • Минимальный набор разумных соглашений, чтобы разработчики могли работать вместе над одной и той же кодовой базой.

Мы называем это паттерном MV *. Модели, виды и дополнительные принадлежности.

Backbone is light

Несмотря на первоначальный вид, Backbone фантастически легкий, почти ничего не делает. То, что он делает, очень помогает.

Он дает вам набор небольших объектов, которые вы можете создавать, и которые могут излучать события и слушать друг друга. Вы можете создать небольшой объект, например, для представления комментария, а затем небольшой объект commentView для представления отображения комментария в определенном месте в браузере.

Вы можете указать commentView прослушивать комментарий и перерисовывать себя при изменении комментария. Даже если у вас есть один и тот же комментарий, отображаемый в нескольких местах на вашей странице, все эти представления могут прослушивать одну и ту же модель комментариев и оставаться синхронизированными.

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

Models

В начале обычно ваши данные хранятся либо в глобальной переменной, либо в DOM как атрибуты данных. У обоих есть проблемы. Глобальные переменные могут конфликтовать друг с другом и, как правило, являются дурным тоном. Атрибуты данных, хранящиеся в DOM, могут быть только строками, вам придется анализировать их снова и снова. Трудно хранить такие вещи, как массивы, даты или объекты, а также анализировать ваши данные в структурированной форме.

Атрибуты данных выглядят так:

<p data-username="derek" data-age="42"></p>

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

Когда ваша модель обновляется, запускается событие. У вас может быть представление, привязанное к этому конкретному объекту. Представление отслеживает события изменения модели и повторно отображает себя.

Views

Backbone предоставляет вам объекты View, которые взаимодействуют с DOM. Все функции, которые управляют DOM или прослушивают события DOM, находятся здесь.

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

Каждое представление привязано к определенной части DOM, поэтому у вас может быть searchFormView, который слушает только форму поиска, и shoppingCartView, который отображает только корзину покупок.

Представления обычно также привязаны к определенным моделям или коллекциям. Когда модель обновляется, она запускает событие, которое прослушивает представление. Представление могло бы вызвать рендеринг, чтобы перерисовать себя.

Точно так же, когда вы вводите форму, ваше представление может обновлять объект модели. Каждое другое представление, слушающее эту модель, затем вызовет свою собственную функцию рендеринга.

Это дает нам четкое разделение проблем, что сохраняет наш код аккуратным и аккуратным.

The render function

Вы можете реализовать свою функцию рендеринга любым удобным для вас способом. Вы можете просто добавить сюда jQuery, чтобы обновить DOM вручную.

Вы также можете скомпилировать шаблон и использовать его. Шаблон - это просто строка с точками вставки. Вы передаете его функции компиляции вместе с объектом JSON и получаете обратно скомпилированную строку, которую вы можете вставить в свою DOM.

Collections

У вас также есть доступ к коллекциям, в которых хранятся списки моделей, поэтому todoCollection будет списком моделей задач. Когда коллекция получает или теряет модель, меняет свой порядок или модель в коллекции обновляется, вся коллекция запускает событие.

Представление может прослушивать коллекцию и обновлять себя при каждом обновлении коллекции.

Вы можете добавить в свою коллекцию методы сортировки и фильтрации и, например, настроить ее автоматическую сортировку.

And Events to Tie It All Together

Насколько это возможно, компоненты приложения отделены друг от друга. Они общаются с помощью событий, поэтому shoppingCartView может прослушивать коллекцию shoppingCart и перерисовывать себя при добавлении корзины.

shoppingCartView.listenTo(shoppingCart, "add", shoppingCartView.render);

Конечно, другие объекты также могут прослушивать shoppingCart и выполнять другие действия, например обновлять итоговые данные или сохранять состояние в локальном хранилище.

  • Представления слушают модели и отображаются при изменении модели.
  • Представления прослушивают коллекции и отображают список (или сетку, или карту и т. Д.) При изменении элемента в коллекции.
  • Модели слушают представления, чтобы они могли изменить состояние, возможно, при редактировании формы.

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

Conventions

Код, написанный для Backbone, следует свободному набору соглашений. Код DOM принадлежит представлению. Код коллекции принадлежит коллекции. Бизнес-логика входит в модель. Другой разработчик, взявший вашу кодовую базу, сможет сразу взяться за дело.

To sum up

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

My little book

Мне настолько понравился Backbone, что я написал об этом небольшую вводную книгу. Вы можете прочитать его в Интернете здесь: http://nicholasjohnson.com/backbone-book/

Я также разбил материал на короткий онлайн-курс, который вы можете найти на здесь (в архиве). Вы можете пройти курс примерно за день.

person superluminary    schedule 04.07.2014
comment
Спасибо, пандит. Вы очень любезны. - person superluminary; 26.08.2014
comment
Разве представление не отображает шаблон технически, а не «сам»? Кажется, он больше играет роль «Presenter» или «ViewModel». - person JoeBrockhaus; 10.02.2015
comment
Хорошая мысль, хотя представление может отображать все, что вы его попросите. Это может быть шаблон, произвольный jQuery или даже что-то крошечное, например, значение в форме или число на значке. - person superluminary; 10.02.2015
comment
Это правда - особенно потому, что это javascript, границы - это своего рода дым и зеркала - если вы хотите пересечь их ненадлежащим образом, вы можете. Когда я впервые познакомился с основами, исходящими от более строгих языков и фреймворков MV (c / *), это было одним из самых больших препятствий при обучении на примере. - person JoeBrockhaus; 10.02.2015
comment
Да, скажем, ваше представление - это форма, а поля потенциально грязные, это может быть подходящим вариантом для установки значений определенных полей в вашем представлении, просто используя jQuery. Backbone, будучи крошечным, будет обслуживать микро-решение. Я лично не кодирую так, но это возможно. - person superluminary; 10.02.2015
comment
@superluminary действительно помогает !! - person Antoops; 17.02.2015
comment
Спасибо @Antoops, рад возможности помочь. - person superluminary; 18.02.2015
comment
Я очень рад, что могу помочь @TastyCode - person superluminary; 28.04.2015
comment
Книга очень полезна. Спасибо, что написали это. - person Sung Cho; 04.10.2015
comment
отличное объяснение - person Kaushil Rambhia; 07.10.2015
comment
лучшее объяснение, которое я видел на этом сайте. большое спасибо :) :) - person Mahi; 15.11.2016
comment
Спасибо, @Mahi, это мило с твоей стороны! - person superluminary; 18.11.2016

Вот интересная презентация:

Введение в Backbone.js

Подсказка (со слайдов):

  • Рельсы в браузере? Нет.
  • Фреймворк MVC для JavaScript? Сорта.
  • Большая толстая государственная машина? ДА!
person dpan    schedule 19.04.2011

Backbone.js - это JavaScript-фреймворк, который помогает организовать ваш код. Это буквально основа, на которой вы строите свое приложение. Он не предоставляет виджеты (например, jQuery UI или Dojo).

Он дает вам отличный набор базовых классов, которые вы можете расширить для создания чистого кода JavaScript, который взаимодействует с конечными точками RESTful на вашем сервере.

person Andrew Hare    schedule 24.03.2011
comment
Я активно использую jQuery, mootools и общий javascript в своем проекте. Как изучение backbone.js поможет мне и что такое конечная точка Restful. Извините, если мой вопрос не имеет смысла. - person sushil bharwani; 24.03.2011
comment
jQuery в основном предназначен для манипулирования DOM, где Backbone широко используется как среда, управляемая событиями, а также для моделирования данных. - person RobertPitt; 24.03.2011

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

person sv_in    schedule 24.03.2011
comment
да, на самом деле легко предположить, что имя - это просто имя, например, «jquery», по-видимому, означает «запрос javascript», который сам по себе ничего не значит. Но в данном случае это буквально означает позвоночник :) - person msanjay; 02.03.2013

Это довольно хорошее вводное видео: http://vimeo.com/22685608

Если вам нужна дополнительная информация о Rails и Backbone, у Thoughtbot есть эта довольно хорошая книга (не бесплатная): https://workshops.oughttbot.com/backbone-js-on-rails

person Vince    schedule 08.06.2011

Я должен признать, что все «преимущества» MVC никогда не делали мою работу проще, быстрее или лучше. Это просто делает процесс кодирования более абстрактным и трудоемким. Техническое обслуживание - это кошмар при попытке отладить чье-то представление о том, что такое разделение. Не знаю, сколько из вас людей когда-либо пытались обновить сайт FLEX, который использовал Cairngorm в качестве модели MVC, но то, что должно занимать 30 секунд для обновления, часто может занять более 2 часов (поиск / отслеживание / отладка только для поиска одного события ). MVC был и остается для меня «преимуществом», которое можно использовать.

person user1415445    schedule 12.03.2013
comment
Честно говоря, любая структура фреймворка может быть искалечена и деформирована невежественными программистами или программистами, которым просто наплевать. Однажды я работал над сайтом CodeIgniter, который должен был быть очень простым и простым в создании. Но идиот, с которым я работал, настолько привык делать вещи в стиле 90-х, что изменил его с чистого подхода ООП на деформированный процедурный подход внутри ООП. - person Patrick; 10.09.2013
comment
Я также видел, как кто-то писал сайт с нуля и красиво писал его без использования каких-либо фреймворков. Однажды это было сделано относительно молодым программистом PHP. Просто у него был очень рациональный ум, который придумал довольно изящный способ воплощать вещи в жизнь. Использование хорошего фреймворка только до определенного момента. В то время как использование передовых методов программирования перенесет вас на световые годы в будущее. - person Patrick; 10.09.2013
comment
@ user1415445: То, что вы говорите, по сути означает, что иметь один единственный класс, который обрабатывает логику данных, логику рендеринга и связь между виджетами уровня представления и кодом хранения / извлечения данных, легче поддерживать, чем когда каждая из этих проблем обрабатывается отдельными классами / объектами. В это трудно поверить. Если вы не можете продемонстрировать нетривиальное приложение, написанное дважды, один раз с MVC и один раз без него, его версию, отличную от MVC, легче поддерживать и т. Д. - person βξhrαng; 29.01.2014
comment
Любое приложение, выходящее за рамки тривиального, в идеале нуждается в шаблоне, и MVC - отличный шаблон, когда вы имеете дело с представлением данных. Похоже, у вас был плохой опыт, но это не ошибка шаблона. - person superluminary; 06.01.2015
comment
документация всегда будет отсутствующим розеттским камнем, независимо от используемых шаблонов и методов, потому что они меняются со временем. Красота шаблонов, подобных MVC, заключается в том, что, как только вы поймете, что такое сантехника, вам больше не придется тратить время на написание сантехники каждый раз, когда вы добавляете новую функцию или обновляете старую. Так что да, пока вы не разберетесь с сантехникой, это будет бесполезным занятием. Единственный способ обеспечить адекватное понимание будущих неизвестных разработчиков - следовать достаточно разумным стандартам И ТАКЖЕ хорошо документировать. Поддерживать и понимать чей-то спагеттичный беспорядок не быстрее и не легче .. - person JoeBrockhaus; 11.02.2015

Вот небольшая статья о начале работы, которую я написал на BackboneJS. Надеюсь, это поможет! http://www.infragistics.com/community/blogs/nanil/archive/2013/04/01/exploring-javascript-mv-frameworks-part-1-hello-backbonejs.aspx

person Nish    schedule 03.04.2013

Backbone был создан Джереми Ашкенасом, который также написал CoffeeScript. Как приложение с большим количеством JavaScript, то, что мы теперь знаем как Backbone, отвечало за структурирование приложения в согласованную базу кода. Underscore.js, единственная зависимость магистрали, также была частью приложения DocumentCloud.

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

Дополнительные преимущества использования Backbone.js

  1. Смотрите Backbone как библиотеку, а не как фреймворк
  2. Javascript теперь структурирован, модель (MVVM)
  3. Большое сообщество пользователей
person anish    schedule 16.11.2014

backbone.js - это Model-View-Controller (MVC) с JavaScript но Extjs (заархивировано) лучше, чем backbone для шаблона MVC с помощью сценария java

С Backbone у вас есть свобода делать практически все, что вы пожелаете. Вместо того, чтобы пытаться разветвлять api и настраивать, я бы использовал Backbonejs из-за его простоты и простоты реализации. Опять же, трудно сказать, что вам нужно из двух: одна - это библиотека, а другая - компонент.

person zandi    schedule 10.01.2013

Он также добавляет маршрутизацию с использованием контроллеров и представлений с KVO. С его помощью вы сможете разрабатывать приложения "AJAXy".

Рассматривайте его как легкую структуру Sproutcore или Cappuccino.

person benvds    schedule 24.03.2011

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

person flaalf    schedule 11.06.2014

Уже так много хороших ответов. Backbone js помогает упорядочить код. При изменении модели / коллекции происходит автоматическая отрисовка представления, что снижает накладные расходы на разработку.

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

person FlintOff    schedule 12.01.2018

Веб-приложение, предполагающее активное взаимодействие пользователя со многими запросами AJAX, которые необходимо время от времени изменять и которое выполняется в режиме реального времени (например, Facebook или StackOverflow), должно использовать инфраструктуру MVC, такую ​​как Backbone.js. Это лучший способ создать хороший код.

Если же приложение маленькое, Backbone.js будет излишним, особенно для начинающих пользователей.

Backbone дает вам MVC на стороне клиента и все преимущества, вытекающие из этого.

person user1365013    schedule 25.10.2012
comment
нужно использовать магистраль? Я не вижу stackoverflow или facebook, ваших двух примеров, с использованием backbone или подчеркивания вообще. У вас есть ссылка на это заявление? - person David Meister; 22.12.2012
comment
Конечно, есть много других библиотек MV *, и Backbone - одна из них. Однако в целом MVC помогает поддерживать порядок при разработке более крупных фрагментов кода. - person superluminary; 03.07.2014