Как стать автором
Обновить

Комментарии 70

Спасибо огромное!) как раз думаю активно изучать node.js
Пожалуйста =) Этого материала точно хватит для начала — проверено на себе. К продолжению уже будете готовы, как минимум, теоретически.
НЛО прилетело и опубликовало эту надпись здесь
Господа, был найден клад! Спасибо.
НЛО прилетело и опубликовало эту надпись здесь
Я распарсил этот список, добавил статистику по watchers и forks, получилось вот так: modules.node-js.ru
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Список обновляется каждую ночь. Сквозную сортировку конечно надо сделать тоже, а также тренды недели (сортировать по приросту вотчеров за неделю, скажем) — так можно будет отследить что-то новое и интересное. Сделаю обязательно, как будет свободная минутка.
НЛО прилетело и опубликовало эту надпись здесь
Изучаю Node.js около полугода, пишу в основном анализаторы текстовых файлов и качалки информации с сайтов. Нехватало работы с окнами, спасибо за наводку на nwm буду изучать.
Народ, поделитесь практическим опытом использования Node.js. не ссылками на обсуждения в инете, а сугубо личным. особо интересуют такие вопросы:

1. Какие задачи решаете с его помощью?
2. почему выбрали именно его, по какому критерию?
3. грабли, танцы с бубнами, эффективные заклинания?
4. чем для *ваших* задач он лучше? (перекликается с 2, но иногда сначала выбирают, а потом приходит понимание)

Спасибо.
Уже использую в связке с редисом для реализации автокомплита на высоконагруженом сайте — если интерестно — напишу отдельный топик. Плюс используем для быстрого доступа клиентского джиэса к серверному кешу (редис и мэмкеш)
да интересно. просто, я пробовал его пощупать и либо я дурак, либо оно не о чем.

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

Но смотря на то сколько народу пытается чтото на нем делать, у меня шевилится мысль, что я уже старый сильно и чего то не догоняю
Далее оффтоп. 34 — старый? =) Не согласен на корню.
пока еще 33 :) но тем не менее при взгляде на ноду мне кажется что это шаг назад, который многим вылезет боком. но наличие такого количества энтузиастов, наталкивает на мысль, что я чтото пропустил
Когда я в студенчестве увидел Prolog впервые, я подумал — как на этом можно писать?! Оказалось что просто надо иначе думать. Тут типа то же самое: думаешь асинхронно и уже нет никакой каши ни в голове, ни в коде. Но надо руку набить сперва, как и везде, в общем-то, будь то руби или скала.
я про поддерживаемость кода, а не про трудность его написания
Эти понятия идут рука об руку, иначе вопрос о многоэтажности колбэков вообще не возник бы: написал и ладно. Я как раз про то, как лучше написать так, чтоб потом не было мучительно больно через пару месяцов читать код.
Я правильно понял что основная проблема это асинхронность нода? Если так, то я в принципе согласен что для многих задач это преждевременная оптимизация. Поэтому я написал Common Node который позволяет мне писать код в синхронном стиле не теряя преимуществ нода (низкий объем памяти, скорость и JavaScript).
Главная проблема, на мой взгляд, это колбэки и то с какой скоростью превращается код их использующий в кашу.

+ Если к этому добавить «родовые травмы» JS — динамическую типизацию, неявный вывод типов и нестрогий синтаксисом, то большие проекты хз как сопровождать. Ниже, человек написал что у них 100к слоков на js — я натурально в осадок выпал. У меня был опыть питоновского проекта гдетона на 70к и 7 разработчиков — это быстро стало адом.

js отличный скриптовый язык но тянуть его на сервер — не могу этого понять. учитавая что есть эланг и прочие функциональные языки.
Я и имел в виду проблемы с кучей колбэков под асинхронностью. Мой проект решает эти проблемы.

По поводу языка, я не согласен. Используя модули и packages, очень даже удобно работать с большими проектами. JavaScript благодаря его динамичности очень компактный а прототипы позволяют писать код в разных стилях начиная с процедурного вплоть до функционального.
Используйте github.com/caolan/async, разбивайте код на модули — вложенности глубиной больше 3-4 нигде не будет.
Проблема не только в глубине но и в отсутствии контекста и лишнего «boilerplate» кода.
человек написал что у них 100к слоков на js
Разрешите узнать, что Вы имели в виду, говоря «слоков».
имел в виду слоки
1) Используем для управления облачным хостингом — справляется на ура!
2) Две причины: javascript очень гибок и удобен, наш хостинг для node.js приложений
3) Стараемся обходится без грабель, все «недостатки» решаются созданием pull request для node с фиксом ошибок или с усовершенствованием API
4) см. 2
сколько разработчиков в проекте, сколько строк кода, хотябы примерно, в той части что под ноду?

спасибо
11 человек, > 100к как минимум.
100 000 строк яваскрипт кода??? офигеть. а можете рассказать как организована работа с ним? поддержка, рефакторинг, тестирование?

сервис сильно нагружен? сегментейшен фолт часто бывает?

Спасибо.
НЛО прилетело и опубликовало эту надпись здесь
мы оба говорим о коде под node.js?
НЛО прилетело и опубликовало эту надпись здесь
Боевого кода привести не могу, но во время моих экпериментов, месяца 3 назад, регулярно валилось при работе с мускулом.

гугленье тогда показало что сегфолт, в разных ситуациях ловят почти все. в том числе были релизы, которые просто при установке высыпались.

+ была серьезная проблема с поддержкой кирилицы (не utf8). как сейчас не знаю.

вчера через личку пообщались с хорошим человеком, по его мнению в последнем релизе сегфолтов стало значительно меньше.
НЛО прилетело и опубликовало эту надпись здесь
Ну вот в ваш pure-js код, приходит строка кирилицы в win1251 и гдето внутри ноды что-то сыплется и в результате имеем сегфолт. это чьих кривых рук дело?

вот, пример нагуглил ошибка в регэкспе приводит к сегфолту.

Все разбито на модули, в каждом до 5 тысяч строк.
Segfaults бывает только если C расширения неправильно обрабатывают память, в моей практике не встречались. (Только когда сам писал C расширения и ошибался)

Пока нагрузка относительно небольшая, но все решается горизонтальным маштабированием.
НЛО прилетело и опубликовало эту надпись здесь
В одном старом проекте заменил сервис, который раздавал события клиентским приложениям с реализации на Delphi на реализацию на NodeJS. Ну там вообще вся серверная часть переползла под линукс. Старый сервис уже использовал JS (движок от Microsoft) так что на NodeJS надо было только реализовать такую же глобальную область видимости ( с такими же функциями и объектами), а старые все скрипты просто подхватились.
В новых проектах (у меня это не сайты) для Web интерфейса использую NodeJS + NowJS — основное преимущество это использование одного языка в клиенте и сервере ну и RPC «без напряга» (фишка NowJS — возможность легко вызвать функцию на другой стороне (с клиента на сервере и наоборот) и получить обратно callback).
Еще одно применение у меня это создание сетевых сервисов для разных железяк, которые работают по Serial интерфейсу. Например, когда несколько устройств сидит на RS-485 (разные датчики или реле) и надо с ними общаться другим программам по сети. Асинхронность и сетевые возможности NodeJS приходятся очень кстати.
Да и у меня есть парочка своих модулей для NodeJS.
Почему именно нода?
Чуваки, одумайтесь.
JS — классная вещь, но нода — это не то, ради чего стоит потратить лучшие годы жизни.

Три с половиной человека, делающие протоипы сайтов — это стандарт, а сотни, с нуля поднимающие платформу — это уже явление.

Сам чуть не попался на эту ловушку, отсюда и такой непозитивный комментарий.
Node.js — это не только сайты. Более того, я рекомендую использовать его для создания сервисов. Для создания сайтов есть множество других популярных и намного более удобных технологий (взять хотя бы RoR).
Наша компания активно использует node.js, никаких нареканий нет, а если и были — сами поправили все и предложили на review авторам.
НЛО прилетело и опубликовало эту надпись здесь
На опыте, полученном во время работы в Nodejitsu ( nodejitsu.com/ )
НЛО прилетело и опубликовало эту надпись здесь
  • Легко модифицируется
  • Легко писать C расширения (v8 api обалденный просто)
  • Простое развертывание в облаке
  • Легкость организации межпрограммного/межсерверного взаимодействия (простая работа с сокетами)
НЛО прилетело и опубликовало эту надпись здесь
Абсолютно ничем.
Только про API.

Мое мнение исключительно субъективно и основано только лишь на личном опыте разработки приложений на python/ruby/erlang/node.js
Вот! Проект который у вас под опенсорсом, haibu, это просто одна нода облака? То, что соединяет эти ноды вы не опенсорсили?
На данный момент — нет. Все остальное закрытые технологии.
Посоветуйте модуль для работы с mysql. Пытался найти самый оптимальный вариант, но возникло больше вопросов чем ответов.
Как-то неоднозначно ситуация с мускулем обстоит.

Особенно интересует кто каким модулем пользуется на боевых серверах.
НЛО прилетело и опубликовало эту надпись здесь
Стоит дополнить из полезностей на русском для начинающих:
Руководства по языку http://nodeguide.ru/doc/ (низкий поклон создателям)
Блог о разном/интересном http://nodejs.ru/ (жалко редко обновляется)
Спасибо, добавил! Как то мимо них проходил…
НЛО прилетело и опубликовало эту надпись здесь
Thanks, I've updated.
НЛО прилетело и опубликовало эту надпись здесь
Низкий поклон тебе за труды! Очень полезное руководство.
Жалко кармы недостаточно, заплюсовал бы.
НЛО прилетело и опубликовало эту надпись здесь
Если у вас есть вопросы по node.js, модулям — смело обращайтесь ко мне!
Забавно, как только статья вышла на Smashing Magazine, я взялся ее переводить :) Перевел только пару абзацев и решил сначала доделать перевод статьи про багрепорты :) Если бы я продолжил переводить, получилось бы нехорошо.

А переводите вы очень достойно, спасибо за такое качество!
Спасибо за лестный отзыв! Передам учителям при случае )
Возможно глупый вопрос — можно ли и как проще всего использовать Node.js (или V8) для создания командлайновых утилиток? Типа как скрипты только на JS.
Есть модули для парсинга аргументов. Тот же же express.js поставляется со скриптом для генерации каркаса.
Для этого написан удобный модуль Commander.js
Добавьте в топик ссылки на сайты dailyjs.com & blog.nodejitsu.com — там частенько появляются новости и обзоры модулей для ноды.
Набросал недавно рейтинг nodejs модулей: modules.node-js.ru/
Rolling on railwayjs :)
С помощью Mastering Node вы можете разрабатывать высоконагруженные веб-сервера, используя модульность CommonJS, библиотеки ядра Node.js и модули сторонних разработчиков.
Простите, вы хоть сами понимаете эту фразу? ;)

Руссскоязычный форум по Node.js: forum.nodejs.ru
Переведённая документация: nodejs.ru/doc/v0.4.x/index.html (fork me)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации