Каковы некоторые архитектурные причины для использования node.js помимо масштабируемости? - PullRequest
17 голосов
/ 25 января 2011

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

  1. Есть ли в node.js другие варианты использования, если масштабируемость меня не касается?
  2. Если да # 1, то что они?
  3. Подходит ли использование node.js для какого-либо конкретного типа архитектур приложений? Например. аналогично тому, как некоторые базы данных ключ / значение (но я ненавижу этот термин) полезны, кроме как по соображениям масштабируемости.

Ответы [ 6 ]

8 голосов
/ 26 января 2011

Моя причина опробовать узел - тот факт, что невероятно легко отправлять данные JSON между сервером и клиентом для запросов ajax. Если вы используете что-то вроде MongoDB, которое также хранит данные в виде объекта JSON, вам никогда не придется беспокоиться о переводе или анализе ваших данных.

Если ваш сайт использует много Ajax, и вы отправляете свои данные в виде объектов JSON (а не XML или простой текст), то node.js сэкономит вам немало усилий.

4 голосов
/ 26 января 2011

Я думаю, что это сообщение в блоге суммирует это довольно хорошо: http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb

Короче говоря (pro node.js):

  • Скорость
  • Javascript (особенно если вы уже это знаете)
  • Эффективность

node.js действительно великолепен. Попробуйте! :)

2 голосов
/ 26 января 2011

Если быть точным, я думаю, что общий серверный движок JavaScript в вашем вопросе был бы V8, в то время как, по словам его создателя, Node был создан для "написания сценариев сетевых программ".Я не верю, что он рассматривает это так широко, как многие из нас, но признает, куда это может пойти.[Я не могу говорить за кого-то другого - это просто моя интерпретация, основанная на написанных мною работах и ​​презентациях.]

Таким образом, он подходит к вещам с несколько более низкого уровня, делает HTTP гражданином первого классаи случается, что это действительно круто, что, я думаю, делает его достаточным «вариантом использования» для большинства из нас.;)

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

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

2 голосов
/ 25 января 2011

Я могу придумать одну причину, но она не очень глубока. По сути, если вы разрабатываете RIA, весь ваш стек может быть javascript. Это может иметь какое-то значение.

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

1 голос
/ 27 октября 2011

Мне нравится использовать NodeJS для написания средств тестирования, потому что вы можете написать заглушку / сервер / клиент очень быстро. И вы можете управлять своим приложением с легкостью. Я могу легко написать сторонний сервер для тестирования производительности моего приложения. Я также использую это, чтобы управлять моим заявлением. Я могу выполнять сложные сценарии клиент-сервер, используя setTimout, чтобы запускать несколько событий на основе любой логики и проверять их в масштабе.

1 голос
/ 26 января 2011

Что мне нравится в файле node.js, кроме неблокирующей модели ввода-вывода, масштабируемости и всего того, что связано с «первичными причинами»:

  • Облегченная структура этого фреймворка.Основы просты в освоении.
  • Сообщество разработчиков создает на github множество полезных модулей и библиотек, расширяющих облегченное ядро ​​node.js и его возможности.
  • Собрать серверную часть действительно просто и быстро.и системы реального времени (например, на основе http или сокета) без знания сложных библиотек.
...