Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Node.Js
Форумы портала PHP.SU » Разное » Другие языки программирования » Node.Js

Страниц (3): [1] 2 3 »
 

1. _Dark_ - 15 Апреля, 2013 - 20:06:57 - перейти к сообщению
Друзья, кто работал с Node.Js?
В данный момент есть некоторые идеи для создания определенного проекта, временем я не ограничен, задался выбором языка программирования.
Выбор казалось бы очевиден, я PHP достаточно хорошо знаю, но видимо как-то он поднадоел уже, захотелось чего-то нового, что называется, того, что «в тренде».

Внимание пало на Ruby и Node.Js.
Первый после беглого осмотра отбросил, понял, что будет несколько сложно, т.к. язык не очень похож на остальные, с которыми я работал.

Node.Js привлек внимание из-за JavaScript, а так же из-за своей парадигмы, я некоторое время занимался скриптовым программированием для игр (на Lua), так что идея переноса скриптового JS на сервер мне понравилась.

В данный момент разбираюсь с фреймворком Express и шаблонизатором Jade, в общем-то, все неплохо. Мне для изучения языка достаточно документации и примеров, так что с самим изучением проблем, думаю, не будет.

Меня что интересует: есть ли среди пользователей форума кто-либо, кто работал с Node.Js? Ваше мнение о платформе? Стоит ли оно того (изучение) или нет? Возможно, мне только сейчас кажется, что все просто и понятно, а в дальнейшем возникнут проблемы? В общем, просто поделитесь мнениями касательно разработки.
Спасибо.
2. OrmaJever - 15 Апреля, 2013 - 20:38:40 - перейти к сообщению
Насколько я знаю у Node.js и php различаются задачи, и заменить php node.js'ом не получится.
(Добавление)
А вобще учить стоит, в этой професии чем больше знаешь тем лучше. Можно не учить все нюансы, а хотябы просмотреть синтаксис, применение, некоторые особености.
3. vanicon - 15 Апреля, 2013 - 20:43:23 - перейти к сообщению
Сам не использую nodeJs, но по различным статьям в интернете, у него плохо с чтением файлов, и сложными вычислениями.
Поэтому его в основном и используют в чатах (общение в реальном времени) и т.п...
(Добавление)
OrmaJever пишет:
Можно не учить все нюансы, а хотябы просмотреть синтаксис, применение, некоторые особености.

Ну синтаксис там такой же как и в js))
4. caballero - 15 Апреля, 2013 - 21:20:54 - перейти к сообщению
Node.js используетсся для мелких выборок в больших количествах типа чатов, вывод сообщений на стену в соц сетях и т.д. То есть там где можно выводить данные одном потоком.
для серьезный сайтов он непригоден, как бы гугл его не пиарил.
5. OrmaJever - 15 Апреля, 2013 - 22:00:41 - перейти к сообщению
caballero пишет:
для серьезный сайтов он непригоден, как бы гугл его не пиарил.

он от гугла? А?!
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? "Отправил -> Подождал -> Забрал" Растерялся
10. caballero - 16 Апреля, 2013 - 00:42:03 - перейти к сообщению
а что по твоему делает node?
суть 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, запросы ставятся в очередь обрабатываются и отправляются в одном потоке.

Ну если это так то понятно. Помоему если он однопоточный то даже для простых вычислений он не годится Растерялся
13. Zuldek - 16 Апреля, 2013 - 10:55:47 - перейти к сообщению
Работал. От гугла не ушки а ядро js в виде машины v8, разработанной гуглем и лежащей в основе обработки js в webkitе.
Ставить вопрос стоит использовать зависит от ваших задач.
CODE (htmlphp):
скопировать код в буфер обмена
  1. Насколько я знаю у 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/
14. caballero - 16 Апреля, 2013 - 11:45:16 - перейти к сообщению
Цитата:
Это неверное утверждение.
На node.js работают мгновенные сообщения Вконтакте.

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

Цитата:
Нужно помнить что идет разбивка на неограниченно число потоков, отрабатывающих разные запросы.

тогда чем от отличается от PHP который точно так же работает в разных потоках.

Цитата:
Логику распараллеливания обработки запросов node.js вы также можете описывать.

распаралеливание имет смысл если это реальное распаралеливание на реальных потоках процесора и не имитация.
конечно можно выстроить очередь так что бы мелкие запросы имели приоритет. Но зачем тогда вообще эти танцы с бубном.
Имхо после распространения нормалных вебсокетов и их поддержки в PHP всякие костыли начиная от кометов и заканчивая нодой будут не у дел.
15. Zuldek - 16 Апреля, 2013 - 12:14:41 - перейти к сообщению
Цитата:
Имхо после распространения нормалных вебсокетов и их поддержки в PHP всякие костыли начиная от кометов и заканчивая нодой будут не у дел.

Об том и речь, что сравнению можно подвергать только голые PHP и node.js, но кто из нас использует их без расширений?
Та же библиотека libev реализущая цикл событий в node.js доступна для PHP. Разница в том, что она в него интегрирована изначально.
На данный же момент выше были указаны типы задач в которых node.js показывают большую производительность чем традиционные реализации на php. Ключ в выборе технологии здесь - конкретная задача (прим. месседжер для крупного портала или сс), для которой, к примеру php после всех оптимизаций не показывает должной производительности и вместо подключения ещё нескольких расширений целесообразнее реализовать весь конкретный сервис на одном языке, к примеру серверном javascript в виде node.js.

 

Powered by ExBB FM 1.0 RC1