Преимущества node.js по сравнению с другими веб-технологиями
Как я понимаю, node.js
полезен для программистов Java Script, которые теперь могут развиваться на стороне сервера. Кроме того, некоторый код Java Script может быть перенесен с клиентской стороны на сервер.
Есть ли другие преимущества для node.js
по сравнению с другими серверными технологиями (веб-фреймворки Java, RoR
, Django
и т.д.)?
Ответы
Ответ 1
Управление пакетами
По сравнению с Java Maven node.js система управления пакетами (npm) является лучшим в истории.
Для меня этого достаточно, чтобы переключиться. Пакеты, которые я рекомендую вам проверить:
- выразить
- socket.io
- node_redis
- мангуст
- everyauth
Вы можете искать пакеты с помощью http://search.npmjs.org/
Быстрый
node.js очень быстрый (неблокирующий цикл событий), а также имеет очень быстрые собственные привязки (C). Например, тесты node_redis (C binding):
PING: 20000 ops 46189.38 ops/sec 1/4/1.082
SET: 20000 ops 41237.11 ops/sec 0/6/1.210
GET: 20000 ops 39682.54 ops/sec 1/7/1.257
INCR: 20000 ops 40080.16 ops/sec 0/8/1.242
LPUSH: 20000 ops 41152.26 ops/sec 0/3/1.212
LRANGE (10 elements): 20000 ops 36563.07 ops/sec 1/8/1.363
LRANGE (100 elements): 20000 ops 21834.06 ops/sec 0/9/2.287
Активная разработка/сообщество
Райан Дал очень много работает над своим проектом. Кроме того, node.js теперь имеет активную поддержку (спонсора) от, например, Joyent. Сообщество быстро растет
Ответ 2
Производительность является основным преимуществом, node.js выделяет небольшую кучу за каждое соединение, в то время как другие решения на стороне сервера создают поток (2 МБ) для каждого входящего соединения, и, конечно, создание потока происходит намного медленнее, чем распределение кучи Память. Среди других преимуществ - ориентированный на события и неблокирующий характер node.js.
Ответ 3
node.js
управляется событиями. Хотя большинство других фреймворков имеют такую функциональность, встроенную в качестве надстройки (например, через машину событий), это просто "путь" в node.js
. Мысль о том, что архитектура, управляемая событиями, может привести к созданию более масштабируемых приложений (часто мотивированных проблемой C10K). Во-вторых, написанное на JavaScript снижает барьер для входа для большинства разработчиков, которые уже привыкли работать с языком. По-моему, это тоже очень приятно работать, но я не могу сказать, что я развернул его для любых приложений с высоким трафиком. У него также есть машина для обмана. Недавно я полюбил lift и scala, но это только мои собственные предпочтения.
Ответ 4
В качестве разработчиков приложений мы несем ответственность за применение логики для решения проблем. Все проблемы, с которыми сталкиваются разработчики front-end, имеют аналогичные аналоги для разработки на заднем плане. Да, они выражаются по-разному, но они в основном одни и те же проблемы.
Node просто выражает этот факт, объединяя методологии дискретным и рациональным образом.
Благодаря тому, что фоновый код написан таким же образом, применяя те же логические пути, он делает переход гораздо более прозрачным для разработчика, упрощая их работу