Друзья, кто работал с Node.Js?
В данный момент есть некоторые идеи для создания определенного проекта, временем я не ограничен, задался выбором языка программирования.
Выбор казалось бы очевиден, я PHP достаточно хорошо знаю, но видимо как-то он поднадоел уже, захотелось чего-то нового, что называется, того, что «в тренде».
Внимание пало на Ruby и Node.Js.
Первый после беглого осмотра отбросил, понял, что будет несколько сложно, т.к. язык не очень похож на остальные, с которыми я работал.
Node.Js привлек внимание из-за JavaScript, а так же из-за своей парадигмы, я некоторое время занимался скриптовым программированием для игр (на Lua), так что идея переноса скриптового JS на сервер мне понравилась.
В данный момент разбираюсь с фреймворком Express и шаблонизатором Jade, в общем-то, все неплохо. Мне для изучения языка достаточно документации и примеров, так что с самим изучением проблем, думаю, не будет.
Меня что интересует: есть ли среди пользователей форума кто-либо, кто работал с Node.Js? Ваше мнение о платформе? Стоит ли оно того (изучение) или нет? Возможно, мне только сейчас кажется, что все просто и понятно, а в дальнейшем возникнут проблемы? В общем, просто поделитесь мнениями касательно разработки.
Спасибо.
1. _Dark_ - 15 Апреля, 2013 - 20:06:57 - перейти к сообщению
2. OrmaJever - 15 Апреля, 2013 - 20:38:40 - перейти к сообщению
Насколько я знаю у Node.js и php различаются задачи, и заменить php node.js'ом не получится.
(Добавление)
А вобще учить стоит, в этой професии чем больше знаешь тем лучше. Можно не учить все нюансы, а хотябы просмотреть синтаксис, применение, некоторые особености.
(Добавление)
А вобще учить стоит, в этой професии чем больше знаешь тем лучше. Можно не учить все нюансы, а хотябы просмотреть синтаксис, применение, некоторые особености.
3. vanicon - 15 Апреля, 2013 - 20:43:23 - перейти к сообщению
Сам не использую nodeJs, но по различным статьям в интернете, у него плохо с чтением файлов, и сложными вычислениями.
Поэтому его в основном и используют в чатах (общение в реальном времени) и т.п...
(Добавление)
Ну синтаксис там такой же как и в js))
Поэтому его в основном и используют в чатах (общение в реальном времени) и т.п...
(Добавление)
OrmaJever пишет:
Можно не учить все нюансы, а хотябы просмотреть синтаксис, применение, некоторые особености.
Ну синтаксис там такой же как и в js))
4. caballero - 15 Апреля, 2013 - 21:20:54 - перейти к сообщению
Node.js используетсся для мелких выборок в больших количествах типа чатов, вывод сообщений на стену в соц сетях и т.д. То есть там где можно выводить данные одном потоком.
для серьезный сайтов он непригоден, как бы гугл его не пиарил.
для серьезный сайтов он непригоден, как бы гугл его не пиарил.
5. OrmaJever - 15 Апреля, 2013 - 22:00:41 - перейти к сообщению
caballero пишет:
для серьезный сайтов он непригоден, как бы гугл его не пиарил.
он от гугла?
![А?! А?!](./im/emoticons/ohmy.gif)
6. caballero - 15 Апреля, 2013 - 22:09:58 - перейти к сообщению
скажем так - за ним торчат гугловские уши.
7. _Dark_ - 15 Апреля, 2013 - 22:43:58 - перейти к сообщению
OrmaJever пишет:
Насколько я знаю у Node.js и php различаются задачи, и заменить php node.js'ом не получится.
Возможно. В моем случае предстоит много работы именно с сетью. Не столько с самими клиентами, как с получением и обработкой сетевых запросов к сторонним сайтам.
caballero пишет:
для серьезный сайтов он непригоден
Почему?
8. caballero - 15 Апреля, 2013 - 22:45:09 - перейти к сообщению
Цитата:
Почему?
Потому что ляжет на первом же серьезном запросе к БД.
9. OrmaJever - 16 Апреля, 2013 - 00:26:11 - перейти к сообщению
caballero пишет:
Потому что ляжет на первом же серьезном запросе к БД.
А разве запросы обрабатывает сам node.js? "Отправил -> Подождал -> Забрал"
![Растерялся Растерялся](./im/emoticons/confused.gif)
10. caballero - 16 Апреля, 2013 - 00:42:03 - перейти к сообщению
а что по твоему делает node?
суть node не том что там по неведомой причине яваскрипт хотя мог быть и PHP (то же php deamon) и что угодно.
суть в том что для запросов от браузера не создаются отдельные процессы как в PHP, запросы ставятся в очередь обрабатываются и отправляются в одном потоке.
для мелких запросов (сообщения в чате) это годится , но большой тяжелый запрос к БД, или чтение файла заблокирует выполнение всех запросов включая мелкие.
поэтому дергать ноду аяксом и подтягивать мессаджи, как на стене в соцсетях, - это одно а формировать страницу - совсем другое и смысла ноды тут никакго нет.
суть node не том что там по неведомой причине яваскрипт хотя мог быть и PHP (то же php deamon) и что угодно.
суть в том что для запросов от браузера не создаются отдельные процессы как в PHP, запросы ставятся в очередь обрабатываются и отправляются в одном потоке.
для мелких запросов (сообщения в чате) это годится , но большой тяжелый запрос к БД, или чтение файла заблокирует выполнение всех запросов включая мелкие.
поэтому дергать ноду аяксом и подтягивать мессаджи, как на стене в соцсетях, - это одно а формировать страницу - совсем другое и смысла ноды тут никакго нет.
11. _Dark_ - 16 Апреля, 2013 - 06:27:25 - перейти к сообщению
caballero пишет:
для мелких запросов (сообщения в чате) это годится , но большой тяжелый запрос к БД, или чтение файла заблокирует выполнение всех запросов включая мелкие.
Как так? Запросы к БД асинхронные, прямо противоположную информацию читал. Некоторые люди наоборот их синхронными хотят сделать, ломая в корне всю концепцию Node.Js.
MongoDB, которая является де-факто для Node.Js, асинхронно выполняет запросы. Для MySQL есть драйвера, которые предоставляют ту же возможность.
Разве нет?
12. OrmaJever - 16 Апреля, 2013 - 10:14:26 - перейти к сообщению
caballero пишет:
суть в том что для запросов от браузера не создаются отдельные процессы как в PHP, запросы ставятся в очередь обрабатываются и отправляются в одном потоке.
Ну если это так то понятно. Помоему если он однопоточный то даже для простых вычислений он не годится
![Растерялся Растерялся](./im/emoticons/confused.gif)
13. Zuldek - 16 Апреля, 2013 - 10:55:47 - перейти к сообщению
Работал. От гугла не ушки а ядро js в виде машины v8, разработанной гуглем и лежащей в основе обработки js в webkitе.
Ставить вопрос стоит использовать зависит от ваших задач.
Ставить вопрос стоит использовать зависит от ваших задач.
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- Насколько я знаю у Node.js и php различаются задачи, и заменить php node.js'ом не получится.
Это неверное утверждение. Node.js может отдавать что угодно с любого порта по любому протоколу, включая ваши. Вы сами описываете сервер, обработку запросов и проч. Что у них разные задачи, можно сказать только если мы говорим так применительно к "голым" php и node.js и говоря с позиции "что делать проще на конкретной технологии".
Цитата:
для серьезный сайтов он непригоден
Это неверное утверждение.
На node.js работают мгновенные сообщения Вконтакте.
Цитата:
Асинхронность не означает беспорядочность. Всю логику и порядок обработки запросов и отправки их в СУБД вам никто не помешает описать. но большой тяжелый запрос к БД, или чтение файла заблокирует выполнение всех запросов включая мелкие.
Разница в том что код будет исполняться асинхронно и без лишнего оверхеда как в PHP. А пыха не имеет встроенных средств поддержки асинхронности и очередей.
Тем не менее на пыхе ряд задач решается банально проще в несколько раз. Потому что перейти на асинхронный серверный код после PHP не так-то просто. Когда вы знаете что в пыхе он будет выполняться последовательно. Встроенных средств в пыхе, чтобы делать
"onсomplete: dosome", нет, но сделать обертку для этого никто не мешает. Опять же есть pcntl, который может распараллелить задачи и разнести на процессы, сделать очереди и т. д. в node.js все это встроено.
node.js хорошо себя показывает, когда стоит задача приема и обработки большого количества одновременных запросов (например, порядка 2000 запросов в секунду с разных клиентов), что применяется в чатах, играх, и проч. сферах, в которых его использование целесообразно. Его не целесообразно использовать для получения или сложной обрабкотки больших массивов данных не потому, что он что-то там повесит или забьет запросами бд, а потому что под node.js банально мало расширений и готовых библиотек и описывать то, что на пыхе вы сделаете в пару строк на node.js можно очень долго.
Суть затеи в том, что фактически используя node.js вы работаете с "монолитным сервером (прием-отдача) и интерпритатором (логика)". Задачи в которых его использовать целесообразно - указал выше. Можно перейти на данную технлогию, к примеру для веб-сервисов, когда пыха даже со всеми оптимизациями не дает требуемой производительности.
(Добавление)
OrmaJever пишет:
Ну если это так то понятно. Помоему если он однопоточный то даже для простых вычислений он не годится Растерялся
Ну если это так то понятно. Помоему если он однопоточный то даже для простых вычислений он не годится Растерялся
Это не так... . Нужно помнить что идет разбивка на неограниченно число потоков, отрабатывающих разные запросы. Тов. caballero неверно интерпретировал принципы написания асинхронного кода в node.js (и возможно имеет место путаница понятий процессов и потоков). Логику распараллеливания обработки запросов node.js вы также можете описывать.
Логика организации обработки ресурсоемких запросов в node.js хорошо объясняется тут http://habrahabr[dot]ru/post/112742/