Node.js для новичка
Приветствую, булчане :)
Понадобилось мне для своего проекта(система управления освещением с использованием цифрового протокола передачи данных) написать браузерное приложение для диагностики и управления осветительными сетями. Начал копать и наткнулся вдруг на node.js, все вокруг кричат и слюнями брызжут, что это технология будущего, мол php на кол, php+ajax проигрывает по скорости в 70-90 раз тому же node.js, движок V8 и бла бла бла... Ok Повёлся, начал копать в сторону node.js, надо сказать, достаточно интересный экземпляр, судя по описанию на форумах, видео на ютубах, и даже квадрокоптеры могут программироваться на том же самом node.js, что тоже весьма интересно. Цитата:
В состоянии аффекта пошёл читать форумы... Сразу скажу, что опыта клиент-серверного программирования у меня 0. Т.е. я представляю, как это всё устроено в теории, но никогда руки не дотягивались до создания клиент-серверного приложения. Также стоит отметить, что опыта работы с JavaScript или подобными языками у меня тоже 0. ООП я тоже особо никогда не щупал, писал я только на Blitz3D, AutoIt, немного PureBasic, ну и html знаю. Соответственно, ни в одном из этих языков и речи не шло про нормальный ООП, Блиц со своими типами только нарушил моё представление, я всегда думал, что это и есть простейшая реализация ООП, а вот теперь понимаю, что каша в голове. Ok Посмотрел код на форумах, ничерта не понял, пошел искать учебник из серии "node.js для чайников". Нашёл. http://nodebeginner.ru Дошел до середины и понял, что немного запутался в понятиях ООП, да и вообще не мешало бы подучить основы JS. НО Как известно, JavaScript JavaScript'у рознь и мне нужен правильный "продвинутый" JavaScript, который используется в Node.js В связи с этим: 1) Кто уже щупал Node.js и представляет о чем там речь, посоветуйте литературу, написанную понятным языком про основы "правильного" JS. 2) Также неплохо было бы твёрдо освоить принципы ООП, которые используется в "правильном = node.js" JavaScript. Может посоветуете какую-нибудь статью или мануал? 3) Да и вообще неплохо было бы почитать о клиент-серверном программировании, про запросы, блокирующие/неблокирующие операции и т.д. Заранее спасибо! :) |
Ответ: Node.js для новичка
1) http://learn.javascript.ru/ Не обращайте внимания, что это про клиентский JS, так как разницы на уровне самого языка нет.
2) node.js не обязывает использовать ООП, но про ООП в JS там же, по ссылке из п.1 3) Здесь можно вернуться к упомянутому nodebeginner.ru, про блокирующие/неблокирующие операции и асинхронность node.js есть замечательная статья http://habrahabr.ru/post/150788/ (там же на хабре по тегу Node.js много статей). Про клиент-сервер важно понимать концепт веб-сервера, но тут увы, ничего конкретного посоветовать не могу, можете попробовать начать со статьи в википедии, проясняя для себя непонятные места. Удачи :) |
Ответ: 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 пару раз (там всё просто), и начинай кодить. Будут вопросы - задавай, поможем. |
Ответ: Node.js для новичка
Спасибо, буду пробовать :)
|
Часовой пояс GMT +4, время: 09:59. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot