Показать сообщение отдельно
Старый 10.04.2013, 14:56   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Node.js для новичка

Пишу на node.js уже более года. Ходил на gamehack'и, и делал мультиплеер html5 игры за менее чем 24 часа.
По работе используем в текущем проекте node.js + mongodb как основные серверные технологии. Кодить в кайф.

Но важно понимать, что node.js весьма молодой, и как любая технология имеет технологический энтузиазм в виде эйфории публики, что чаще всего сопровождается упадком к нормальному восприятию технологии. Крч, не нужно ожидать от node.js убийцы всего. Это отдельного типа технология, и имеет свою нишу. Конечно она делает кучу разных задач в разы проще, но со многими она не справляется, как и любая другая технология.

Для web API или WebSockets - это конечно один из самых популярных выборов сейчас (тех кто не завязан на ограничениях тормозящего бизнеса).

JavaScript - это скрипт. И такого сильного OOP в нём нету как в том же C#. Основное что сбивает столку это то что function - это и функция и объект, и класс. Зависит от использования и применения.

Самое же главное про server-side JS это не OOP а event-driven парадигма.
Node.js работает в одном потоке - также как и Blitz3D. Но важное отличие в том что там очередь позади этого главного потока. В эту очередь скидываются все асинхронные вызовы функций, таймеров, интервалов и т.п.
Например можно сказать: "через 100мс с текущего момента, вызови 'эту' функцию".
Или: "когда пришло сообщение, вызови 'эту' функцию".
Они будут вызваны асинхронно, в одном и том же потоке, но потом, ты не знаешь когда точно.

Далее важно понимать суть closures - это бракетов. И как переменные доступны внутри них (типо локальные), и вне их. Например создавая новую функцию ты имеешь доступ к переменным которые объявлены в теле блока где эта функция создаётся, и так выше и выше по цепочке вызовов до глобального блока видимости.

Сперва тебе нужно разобраться с примитивами самого JS, переменные, массивы, объекты, функции. И немного .prototype - это методы для классов.
Тогда уже можешь двигаться писать смело на node.js, можешь и сразу писать, сперва без веб частей, а тупо JS.
Для web'а, проще заюзать express.js. Там всё примитивно и просто.

Литература? Ну книг я бы не читал по этому топику. Лучше мелкие статейки или конкретная инфа по модулям или функциям - так ты мыслить будешь динамично в области языка и технологии, а не по шаблонам.
Тем более я не встречал хорошей общей литературы по этим технологиям чтобы дать хорошее знание. Ты верно сказал: JS, JS'у рознь.

Крч, начинай кодить, поставь node, заюзай npm пару раз (там всё просто), и начинай кодить.
Будут вопросы - задавай, поможем.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
DarkInside (10.04.2013), pax (31.08.2013), St_AnGer (10.04.2013)