Убеди босса
Список причин для использования узла:
- Скорость.V8 быстрый.Это быстрее, чем python, это быстрее, чем php.
- Evented IO.IO сделано правильно.Нет проблем с потоками, все работает легко и просто.
- Низкоуровневый веб-сервер.Хороший контроль над абстракцией в динамическом языке.
- JavaScript.Отличный язык с большим опытом разработчиков в написании асинхронного кода.Разработка быстрая, а обслуживание приятное, так как все можно сделать на одном языке (на стороне клиента, на стороне сервера, для доступа к базе данных).
Библиотеки и инструменты, которые можно использовать с node.js:
- express.js : MVC Web Framework.Очень легкийДает вам маршрутизацию и просмотры.Строит поверх connect.js.Из коробки гибкое управление представлениями и маршрутами с поддержкой нескольких css и шаблонизаторов.Как и в случае с самим node.js, он упрощен и дает вам полный контроль над вашим веб-сервером.Лично я нахожу баланс между контролем и абстракцией по праву.
- socket.io : де-факто абстракция веб-сокета.Встроена поддержка изящной деградации, поэтому браузеры без веб-сокетов используют кометные методы или флэш-мост.Позволяет общаться между клиентом и сервером без проблем, просто и в режиме реального времени.
- now.js : Создает поверх socket.io и предоставляет вам синхронизированное пространство имен по всемуклиент и сервер.Позволяет тривиально вызывать серверные методы с клиента или наоборот.
Все эти библиотеки основаны на том факте, что node.js позволяет обрабатывать все на низком уровне и что связь склиент является гладким и оптимизированным, потому что вы используете один и тот же язык с обеих сторон.
Для меня выгодно то, что у меня есть одна и та же библиотека MVC backbone.js на клиенте и сервере,Весь код моей модели используется повторно.Модели на клиенте и сервере синхронизируются тривиально по now.js .
Доступ к моей базе данных осуществляется с помощью cradle (или mongoose ) который все написано на JavaScript.На самом деле мой MVC напрямую связывается с базой данных и легко сохраняет мои модели.Модели определяют полезные методы, такие как save
и fetch
для постоянного хранения базы данных.Я не касаюсь базы данных вручную, потому что мой MVC позволяет мне подключить драйвер базы данных, чтобы сделать это для меня.
Визуализация моих шаблонов выполняется с помощью EJS , мойпредставления делятся между клиентом и сервером.Просто много повторного использования кода, и вся моя веб-разработка выполняется на JavaScript, что означает, что мне не нужно менять свою парадигму или стиль кодирования.
У меня также нет проблем с решением, как мне обращаться с серой областью между тем, что живет на сервере, и тем, что живет на клиенте, потому что эта серая область была полностью сглажена, и клиент и сервер интегрируются незаметно.
Если вы собираетесь написать сложное динамическое ajax-веб-приложение, то node.js является идеальным кандидатом.Если у вас будет статический веб-сайт, то node.js является идеальным кандидатом (вы настроите его за 20 минут).
Если вы собираетесь написать серверный веб-сайт с небольшими функциональными возможностями на стороне клиентаи постбэки тогда, может быть, вам лучше использовать php или ASP.NET.Но если вы делаете это, вам следует изучить более динамичную функциональность на стороне клиента и использовать ajax.