Каковы ваши лучшие практики для проектов backbone.js? - PullRequest
18 голосов
/ 04 апреля 2011

Несмотря на то, что я следил за backbone.js в течение нескольких месяцев и проработал множество учебных пособий, я все еще недостаточно уверен в магистральной сети (или в моих навыках в отношении ее), чтобы использовать ее в более крупном проекте.

По моему опыту, учебные пособия по backbone.js сильно различаются по качеству, некоторые из них ужасно устарели (особенно пример приложения todo из документации по backbone).

Итак, я хотел бы узнать о ваших лучших практиках / рецептах в backbone.js? Как вы обрабатываете вложенные коллекции / представления? JSON сериализация? Более сложные запросы между моделями?

Ответы [ 4 ]

27 голосов
/ 08 апреля 2011

Вот список вопросов, которые вы, кажется, задавали:

backbone.js лучшие практики / рецепты
Моя практика / рецепт номер один - погрузиться в backbone.js code и прочитайте его, пройдитесь по нему даже с помощью отладчика js.Код хорошо документирован и является отличным примером того, каким должен быть современный код JS.

Как вы справляетесь с вложенными коллекциями / представлениями?
Afaik нет «простого способа»для обработки вложенных коллекций и обработки событий, которые происходят в под-коллекции.Вы должны были бы реализовать это.Мне еще не приходилось иметь дело с коллекциями коллекций, поэтому, возможно, вы можете избежать этого, реструктурировав свою «модель данных».Модель, имеющая набор моделей сама по себе, удовлетворяет большинству требований вложенной модели .

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

Сериализация JSON
Какой у вас вопрос?В базовом документе говорится: «Настоятельно рекомендуется включить json2.js»

Более сложные запросы между моделями?
Опять же, какой у вас вопрос?Магистраль предоставляет вам структуру, позволяющую выполнять свои собственные задачи. Вы должны сами реализовать сложности

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

Наследование моделей
Используя backbone.js, вы уже используете наследование моделей.Вот что происходит, когда вы пишете var MyModel = Backbone.Model.extend ...

Извините, что не вдавался в подробности, но, как сказал Томас Дэвис, вопросы были очень расплывчаты.Вы получите более подробный ответ на более подробный вопрос, описывающий конкретную проблему, с которой вы столкнулись.

7 голосов
/ 27 мая 2013

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

http://ricostacruz.com/backbone-patterns/

http://kilon.org/blog/2012/11/3-tips-for-writing-better-backbone-views/

http://blog.involver.com/2012/01/26/testing-backbone-js-best-practices-2/

http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/ (устаревшее решение, но очень важно прочитать и понять !!)

https://github.com/thomasdao/Backbone-View-Manager

Хотел бы я иметь это с самого начала.

Ура!

2 голосов
/ 07 апреля 2011

Я думаю, что вопросы немного расплывчаты, чтобы на них можно было ответить в простом сообщении.

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

Сейчас я работаю над backbonetutorials.com, чтобы попытаться сгруппировать эти сложные вопросы вместе.

Решения по сохранению коллекций, вероятно, будут первым вопросом, нобыло бы здорово, если бы было какое-то участие сообщества.

0 голосов
/ 12 февраля 2014

Есть несколько вещей, о которых вы можете позаботиться при разработке приложений на основе Backbone.js. Например:

  1. Пользовательские плагины и миксины
  2. Вложенные представления / вспомогательные представления
  3. Частичное обновление вида
  4. Управление шаблонами - хранение, предварительная компиляция на переднем и заднем концах
  5. Сериализация моделей
  6. Реляционная модель данных
  7. Использование диспетчера событий
  8. Subrouting
  9. Архитектура крупномасштабных приложений и т. Д.

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

...