Не вводите людей в заблуждение. Модули марионетки вообще не имеют никакого отношения к AMD или ComonJS модулям. Это абстракции более высокого уровня, для более удобного структурирования больших приложений. Marionette.Application - по сути тоже марионетовский модуль, только скажем так, стартовый.
Если в приложении будет много работы с представлениями (View), то добавляйте Marionette сразу. Это сэкономит вам кучу времени, нервов и памяти. Заодно, как ни парадоксально, позволит понять как работает чистый Backbone. Чистый Backbone подходит только для тех кто понимает как он работает и делает этот выбор осознано под конкретные цели.
Максим Антонихин: Зависит от задач, которые перед вами стоят. Вопрос был про Backbone, а не какой фреймворк выбрать. Просто чистый Backbone он как раз для тех кто знает почему он выбрал именно чистый BB. А для новичков я сразу советую разбираться с Марионеткой, по части архитектуры приложения и работы с представлениями она как раз закрывает многие непонятные моменты.
Проверьте на своей базе мой вариант кода и сообщите какой получился результат. Не забудьте поставить модуль async, который я вам очень рекомендую, потому как судя по циклам FOR в вашем коде вы про него не знаете.
В данном случае асинхронный запрос к базе происходит без ожидания ответа от сервера. Классическая ошибка новичка в Node.js - попытка работать синхронно с асинхронными потоками ввода-вывода. Нет смысла как-то трактовать полученное время, т.к. код в примере просто лишён смысла.
Денис Арсланбеков: я глубоко убеждён, что Тостер всё-таки серьёзный ресурс, а не филиал отборочного тура битвы экстрасенсов. У таких вопросов нет ценности. Они не формулируют проблему и не позволяют однозначно обозначить её решение.
bromzh: Вот вроде по форме вы правы - "Нет, нода однопоточная. Там есть event loop" - всё верно. Но что вам мешает выделять подзадачи в другие потоки в Node? Попробуйте - вам понравится :)
Константин Китманов: Я бы не сказал, что человек хорошо знающий JS по front-end`у сходу начнёт писать сложные back-end`ы на Node. Да, порог вхождения ниже. Да, язык один и тот же. Но и различия весьма ощутимые. Что касается изоморфного подхода, то он проистекает не от клиентской школы, а как раз от серверной. Вы приводите весь свой код как раз к CommonJS формату и через это его унифицируете. Я не зря написал про внушительный стек. Пара изоморфных библиотек это одно, а изоморфный подход к архитектуре приложения это несколько совершенно иное.
Основная фишка Node.js - изоморфность кода. Правда этот дзен надо ещё постичь. Приходишь к этому сильно не сразу, требуется найти общий язык с довольно внушительным стеком инструментов и технологий.
bromzh: всё верно, но почему вы решили что в Node.js нельзя разбивать задачи по потокам? Мне кажется вы очень условно понимаете "однопоточность" в Node.js. Вам никто не запрещает создавать многопоточное приложение на Node. Более того, там многие вещи, такие как обмен данными между процессами реализованы легко и красиво. Тут объект отправил - мам объект принял. Лично меня эта магия до сих пор неилюзорно радует.