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

StackOverflow https://stackoverflow.com/questions/4798044

Вопрос

Самая распространенная тема, которую я читал о том, почему использовать node.js, - это высокая масштабируемость благодаря evented, неблокирующей модели ввода-вывода.Я пытаюсь понять другие варианты использования без масштабируемости (и помимо использования в качестве общего серверного движка javascript).

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

Решение

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

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

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

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

Другие советы

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

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

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

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

Чтобы быть точным, я думаю, что общим серверным движком JavaScript в вашем вопросе был бы V8, в то время как, согласно его создателю, Node был создан для "написания сценариев сетевых программ".

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

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

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

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

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

  • Легкая природа его рамки. Основы легко выучить.
  • Сообщество разработчиков создает тонны полезных модулей и библиотек на GitHub, которые расширяют Node.js Loolweight Core и его возможности.
  • Это действительно легко и быстро создавать системы сервера и системы в реальном времени (например, HTTP или сокет) без знания сложных библиотек.

Мне нравится использовать Nodejs для записи жгута тестирования, потому что вы можете очень быстро написать Stub/Server/Client. И вы можете с легкостью управлять своим приложением. Я могу легко скрепить сторонний внутренний сервер для проведения тестирования производительности в моем приложении. Я также использую его для управления своим приложением. Я могу выполнять сложные сценарии клиентских серверов, используя SetTimout, чтобы несколько событий были триггерами на основе любой логики, которую я хочу, и тестировать их в масштабе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top