NodeJS для разработки проектов?

Интересуюсь разработкой на NodeJS, хочу попробовать написать на нем проект. Недавно наткнулся на пост, который был написал больше года назад, в нем NodeJS представляют как «Раковую опухоль» и приводят довольно объективные аргументы. Хотел у сообщества узнать отношение к NodeJS на сегодняшний день. Наверняка за это время произошло много изменений и он стал намного лучше для использования в production.


Поделитесь своим опытом разработки highload проектов на NodeJS и расскажите для какого типа сервисов он наиболее подходит.
  • Вопрос задан
  • 11718 просмотров
Пригласить эксперта
Ответы на вопрос 10
Staltec
@Staltec
Node.js разработчик
Уже второй год у моего клиента работает система информатизации производственных процессов на оконном производстве (евроокна). Задачи системы:
— демонстрация технологических карт изделий на участках конвейера;
— фиксирование операций с изделиями;
— предоставление в реальном времени данных о состоянии отдельных изделий и в целом состояния производства;
— аналитика выработки на участках и конкретными сотрудниками;
— учёт контроля качества;
— складской учёт готовых изделий и стеклопакетов;
— планирование графика отгрузки со склада;
— автоматическое уведомление клиентов о готовности заказа по SMS;

Все интерфейсы системы реализованы как реалтайм веб-приложения использующие Socket.io.

Система писалась на NodeJS версии 0.6, потом была переведена на 0.8 и сейчас уже на 0.10. С переходом проблем не было.
Максимальный аптайм NodeJS процесса системы который удалось наблюдать — 112 дней. Утечек памяти за это время не зафиксировано.

Для меня после разработки такого решения, вопрос о серьёзности NodeJS больше не стоит. Сам был убеждённым перлистом. Сейчас ни на чём кроме NodeJS писать нет желания.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Может в ява скрипте многого и нет, но работает оно очень быстро, у меня всего один проект на нем, но как оно работает и быстро обсчитывает всех юзеров онлайн я до сих пор не понимаю, мне всегда раньше казалось, что javascript тормозной.
Ответ написан
Комментировать
Kaaboeld
@Kaaboeld
Web-разработчик
node.js в текущей его реализации в связке с npm (не писать все с нуля а собирать как конструктор из уже написанных модулей) отличное решение для проекта любого масштаба на нем в том числе реализуют например серверную часть онлайн-игр (каких именно сейчас не подскажу, но поискать можно). Одно из важных его преимуществ — это один язык для client-side и server-side, а так же нативная и простая асинхронность в связке с тем же socket.io особенно.
Ответ написан
Комментировать
@egorinsk
В яваскрипте нет строгой типизации, нормальных классов и прочих радостей серьезных языков. Как я понимаю, это делает его малопригодным для любых сколько-нибудь объемных и сложных приложений (уровня явы и дотнет-приложений). Правда, у меня опыт работы только с браузерным яваскриптом, а не с нодой.
Ответ написан
AndreyChizh
@AndreyChizh
Наиболее подходит для проектов где много операций ввода/вывода с малым потреблением CPU, real-time приложений, потоковой передачи данных. Серьезного highload на Node.js пока не посчастливилось делать, но на средних нагрузках ведет себя достойно и безпроблемно.

Недавно гонял небольшой кусок кода с арифметикой в цикле и на большом количестве итераций V8 оказался быстрее PHP в 70-90 раз.
Ответ написан
Комментировать
dizballanze
@dizballanze
Software developer at Yandex
Node.js очень гибкий инструмент для разработки. На данный момент уже написано огромное количество качественных модулей, которые могут упростить разработку. А если по каким-то причинам не нравится javascript, то всегда можно разрабатывать на CoffeeScript и получить более удобный синтаксис для создания классов, возможности для meta-программирования и другие плюшки :)
Ответ написан
Комментировать
Пост-перевод, на который вы ссылаетесь, был явным троллингом, оригинал его давно удален. Там человек написал блокирующую функцию и обвиняет node.js в том, что он не может магическим образом сделать ее неблокирующей. Вот неплохая статья.
Ответ написан
Комментировать
charon
@charon
я недавно тоже взглянул на node.js и напишу так: сейчас эта штука не входит НИ В ОДИН пакетный менеджер из мира Линукса, даже в Федоре планируют включить только в следующую версию. Из этого я сделал вывод, что для продакшена оно годится только для самых ярых поклонников, которым плевать на всё и в случае проблем они сами допилят.
Но сама штука интересная. Не так уж много существует бэкендов на языках программирования, не основанных исключительно на ООП-подходе.
Ответ написан
@Large
Используем node.js в своём стартапе Skwibl.

Из плюсов:
+ Хорошо держит нагрузки (на проекте пока нагрузки не большие, но под тестами локально держал около 4500 соединений)
+ Быстрая разработка (в связке с coffee-script описание проблемы становится очень лаконичным)
+ Экономит ресурс команды (один язык для сервера и клиента, следовательно не нужно собирать большую команду)
+ Гибкость (все плюсы динамического языка на сервере)
+ Отзывчивое сообщество (в рассылках довольно быстро отвечают на вопросы, стараются помочь)

Из минусов:
— Незрелые библиотеки (довольно много модулей всё ещё страдает от детских болезней, часто приходится писать патчи)
— Отсутствие стандартов (по началу приходилось много велосипедить, чтобы написать архитектуру сайта)

В целом — писать очень приятно и возвращаться к Java не хочется. Библиотеки постепенно подрастут и проблем станет меньше.
Ответ написан
Комментировать
Mithgol
@Mithgol
Читайте хабрахабровский хаб про Node, там есть ответы на Ваши вопросы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы