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

Каковы различия между Backbone.js и Node.js? И что лучше?

Я чувствую себя немного смущенным, там так много фреймворков для Node.js, связанных "stuff". Кто-нибудь сможет дать мне обзор того, каковы различия между Backbone.js и Node.js? И что лучше? Заранее спасибо.

4b9b3361

Ответ 1

Я цитирую это из нескольких источников здесь:

Во-первых, для цитаты из вопроса здесь:

Большинство вещей, которые вы указали, связаны только потому, что они написанные или иным образом использующие JavaScript. Сравнение их очень похоже на сравнивая яблоки с апельсинами. Ему нравится спрашивать, в чем разница между Toyota Camry и двигателем V6. Они связаны, но делают разные вещи.

Node

Также известен как Node.js, Node - это среда JavaScript, на которой мы запустите наш серверный код JavaScript. Он основан на V8 JavaScript двигатель. Весь код JavaScript, который вы пишете, или установите и запустите из пакетов из NPM, GitHub и т.д. выполняется с помощью Node среды выполнения окружающая среда.

Магистральные

Backbone можно сравнить с Model- View-Controllerрамки для JavaScript. Я считаю, что он был первоначально написан для браузер; это помогает защитить ваш клиентский JavaScript от реализуя наиболее распространенные шаблоны MVC (а также пару других вещи), позволяя вам более легко подключить клиентскую сторону JavaScript на ваш серверный код.

Кроме того, это ответ на тот же вопрос на Quora. Кредит идет к Дрю Гарри:

Они почти полностью не связаны. Традиционно Backbone.js является клиентская библиотека и Node.js - способ записи серверных приложений в Javascript. Магистраль - это модель + система просмотра для привязки модели данных с элементами DOM, которые визуально отображают эту модель в веб-страница. Backbone также предоставляет коллекции моделей, а также набор функций утилиты для синхронизации этих моделей с их серверные представления.

Node.js - это просто среда выполнения V8 Javascript, упакованная с стандартную библиотеку, чтобы делать полезные серверные вещи с помощью Javascript. Существует множество пакетов, предназначенных для Node (проверьте npm для способов чтобы легко установить эти пакеты, включая Backbone), которые расширяют его до делать всевозможные интересные вещи. Можно использовать Backbone.js с Node.js, но Backbone не особенно спроектирован с использованием на сервера.

Перейдите и повысьте приведенный выше ответ (ы), если найдете материал полезным.

Ответ 2

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

node.js является основой для приложений сервера Javascript. Он включает в себя движок JavaScript Javascript, разработанный для Chrome. Он асинхронный и управляемый событиями, поэтому он идеально подходит для подачи большого количества небольших запросов.

backbone.js является основой для клиентских веб-приложений, в частности для так называемых "одностраничных веб-приложений", где вначале отправляется только одна страница HTML в браузер, и каждое взаимодействие после этого обрабатывается AJAX запросов и логики Javascript, которая преобразует страницу.

Это означает, что они могут эффективно работать вместе: приложение, реализованное с использованием backbone.js для интерфейса, может иметь свои запросы AJAX, обрабатываемые частью сервера, используя node.js - довольно популярную комбинацию, поскольку она позволяет вам имеют полное веб-приложение, использующее только Javascript.

Ответ 3

Backbone.js - это библиотека javascript, подобная jQuery или YUI, но затрагивающая различные потребности.

Node.js - это интерпретатор javascript, аналогичный Internet Explorer или Firefox или Safari, но затрагивающий различные потребности.

Я мало знаю о backbone.js, но я считаю, что вы можете использовать его с Node.js, поскольку он использует обычный javascript. Возможно, вам понадобится слой эмуляции DOM для связанного с DOM материала.


Дополнительный ответ:

Немного googling показывает, что есть люди, использующие Backbone на Node.js. Преимущество этого заключается в том, что вы сможете использовать тот же код и код повторного использования как на клиенте, так и на сервере.

Смотрите: http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product


Дополнительный ответ:

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

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

V8 действительно поставляется с примером кода для построения интерпретатора. Этот интерпретатор, поставляемый с V8, называется V8-оболочкой.

Механизм - это библиотека, которая реализует интерпретатор. Это именно то, что V8.

Два вышеуказанных термина несколько взаимозаменяемы, потому что слово "интерпретатор" также может быть справедливо использовано вместо "движка" для описания того, что реализует библиотека. Но это использование слова похоже на использование "MVC framework" или "инструментария UI" в том смысле, что оно используется как прилагательное. Поэтому правильно сказать, что "интерпретатор" - это своего рода библиотека.

Но слово первоначально использовалось для обозначения двоичного файла, который выполняет язык программирования. При использовании этого способа он использует его как существительное, поскольку он ссылается на что-то в файловой системе. Используемый таким образом аналогичен использованию "компилятора". Например, в этом смысле можно было бы вызвать clang компилятор, и можно было бы назвать llvm, библиотеку, используемую clang, компилятором в предыдущем смысле.

Давайте посмотрим на то, что не является javascript в качестве примера:

  • tcl - это язык программирования

  • tcl - также библиотека, которая реализует интерпретатор для tcl. Другими словами, двигатель.

  • tclsh - это интерпретатор tcl

Посмотрим на другой пример:

  • ruby ​​- это язык программирования

  • RubyC - один из многих движков для рубинов

  • ruby ​​- это интерпретатор, который использует RubyC

Никто не использует слово "каркас" при обращении к двоичному исполняемому интерпретатору для двух вышеупомянутых языков. Это просто звучит глупо.

Но подождите, если вы скажете, Node.js ссылается не только на Node.exe. Он действительно предоставляет множество дополнительных функций, которые можно использовать как хорошую основу для написания отличных программ. Другими словами, структура.

Ну да. Это правда не означает, что использование слова "интерпретатор" относится к Node.exe автоматически недействительно. Так же, как использование слова "земля" для обозначения планеты не делает использование слова для обозначения почвы автоматически недействительным.

Кроме того, эти дополнительные функции? Это верно и для tcl и ruby. Это также верно для C. Эти дополнительные функции, такие как fs и http на Node.js, традиционно называются стандартной библиотекой. В то время как проект Node.js называет его каркасом, который их выбирает. Почти никто не называет их интерпретатор + стандартную библиотеку каркасом. PHP, например, распространяется точно так же, как Node.js с кучей стандартных библиотек высокого уровня, но никто не назвал бы PHP фреймворком. Это также немного глупо, когда люди пишут реальные рамки поверх node - рамки для фреймворка. Но я не собираюсь говорить, что они неправы, потому что они решили назвать это так. Это просто их способ описать, что они создали. Больше энергии для них.

Я говорю, что люди, которые говорят, что Node.js не является интерпретатором, игнорируют использование слова на протяжении всей истории вычислений. Я не знаю. Исходя из азиатского фона, мне естественно предположить, что все принадлежит нескольким категориям. Может быть, это западная идея, что вещи принадлежат строго определенным категориям, которые я не совсем понимаю.

Итак, вот факты:

  • Node.js - это не просто библиотека javascript. Вам понадобится Node.exe, чтобы использовать стандартные библиотеки, с которыми поставляется node.

  • Backbone.js - это, с другой стороны, стандартная библиотека javascript. Это не исполняемый файл.

  • Node.js - единственный пример, когда интерпретатор + библиотека называется каркасом до сих пор. Все остальные примеры фреймворков, которые я знаю в программировании, относятся к библиотекам, которые реализуют шаблон проектирования.

  • Вызов чего-то "B" не делает автоматически "A" недействительным.

Последнее: веб-браузеры также поставляются с очень большой стандартной библиотекой высокого уровня для javascript. Он называется DOM (там также множество других вещей, таких как Math и XMLHttpRequest, но DOM является самым большим). Соответственно, нужно называть JavaScript-обозреватель и фреймворки javascript Firefox, но никто этого не делает.

Ответ 4

Оба относятся к javascript, но совершенно разные.

Node является интерпретатором/платформой для выполнения кода javascript на сервере, например JDK или Ruby. Проще говоря, вам необходимо установить NodeJS для интерпретации на базе базы данных на сервере.

Когда дело доходит до серверной части MVC., Geddy, RailwayJS, Express и т.д., считается обслуживающим цель лучше, чем Backbone.

В то время как Backbone является защитой MVC на стороне клиента.

Ответ 5

Node.js:

Javascript для внутренней стороны. (например: php, ruby ​​on rails, python и т.д.)

Backbone.js:

Javascript для стороннего интерфейса (работает в браузере вашего клиента) backbone.js также использует jquery, больше фреймворков javascript для клиентской стороны: 1. mootools 2. ExtJS 3. dojo 4. прототип и многое другое...

Ответ 6

Node.js - серверная платформа, предназначенная для создания сетевых приложений. Он построен на Javascript Engine Google V8 и использует асинхронный подход, основанный на событиях, для создания приложений. Backbone.js - это просто клиентская библиотека javascript, которая упрощает создание и поддержку клиентского кода и соответствует шаблону MVC. Следовательно, их нельзя сравнивать.

Backbone.js имеет множество альтернатив, которые используют несколько иной подход для достижения той же цели. Наиболее известны: knockout, ember.js и другие. И он также может быть подключен к приложению node.js.