Как организовать код на Backbone.js и/или лучшие практики?

Добрый день,

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

Итак:
1. Какие существуют лучшие практики по организации кода на backbone, где почитать?
2. Как и чем разбивать сущности на файлы и надо ли это делать?
3. Какие можете дать советы из своего опыта освоения этого фреймворка.

P.S. постарайтесь не предлагать осваивать ember, angular и т.д.

upd: P.P.S.: также походу возник вопрос: если представление у меня используется только с одним и тем же шаблоном и меняется в экземпляре только модель оправдано ли использовать синглтон и какую реализацию можете посоветовать?
  • Вопрос задан
  • 1032 просмотра
Пригласить эксперта
Ответы на вопрос 3
k12th
@k12th
console.log(`You're pulling my leg, right?`);
1. Я кладу все вьюхи отдельно, модельки отдельно, коллекции отдельно и т.д. Некоторые складывают по бизнес-сущностям ("по экранам", "по страницам").
2. Любой модульной системой (на данный момент времени SystemJS и ES6 модули), из расчета один класс -- один файл.
3. Сразу начинайте использовать дата-байндинг: rivets.js, ractive, vue.js, сэкономите массу времени. Ознакомьтесь со списком расширений -- пригодится.

P.S. Обратите внимание на всякие хорошие практики в ООП, типа S.O.L.I.D. Кстати, осваивать ember/angular и т.п. необязательно, но поглядеть стоит -- будет понятнее, какие недостатки есть в Backbone и как их обходить.
Ответ написан
Комментировать
Задавался аналогичным вопросом, написав с пару десятков моделей на бэкбоне, понял что не хватает некого общего подхода чтоб всё это было красиво организовано, наткнулся на marionettejs.com , наткнулся на просто шикарную книгу: https://leanpub.com/marionette-gentle-introduction (это была моя первая книга на английском, вполне легко прочиталось даже с моим доначальным уровнем). И описанный там подход стал для меня просто откровением.
Что фактически даёт марионетка:
  • модели остаются из бэкбона
  • значительно расширяет архитектуру
  • заменяет вьюхи на более продуманные
Ответ написан
Комментировать
1. Попробуйте проанализировать, часто ли у вас возникает ситуация "одна модель - несколько представлений". Если часто, то раскидывайте их по отдельным файлам. Если нет - задумайтесь, нужно ли это деление (на модель и представление). У меня в практике второй вариант значительно преобладает, я поэтому частично отказался от ВВ в пользу MatreshkaJS (это не призыв к действию, просто подумайте).
2. Если модель/представление занимает больше 1 экрана и приходится скроллить, чтобы перемещаться по коду - разбивайте на модули. Значит слишком много пытаетесь впихнуть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы