За последние 24 часа нас посетили 20177 программистов и 1579 роботов. Сейчас ищут 1990 программистов ...

Node.js - стоит учить?

Тема в разделе "JavaScript и AJAX", создана пользователем Freakmeister, 23 мар 2015.

  1. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Вчера накатал на PHP скрипт для Twitch API, который находит топ1 стрим по количеству зрителей из заданного списка. Работает он пердец как медленно, PHP для доступа к API использует cURL. Я думаю, это как раз хороший повод для меня попробовать что-то другое. Я посмотрел в гугле, есть такой скрипт. Почитал его, упоминания о cURL там не нашёл, вместо этого там такая конструкция, что по-моему шикарно:

    Код (Text):
    1. request.get({
    2.     url: url
    3.     }, function(err, response, body) {}
    4. );
    Должно работать быстрее. Как вы считаете?
    Собссна, тему создал поскольку я не в тренде. Нужен совет стоит ли браться за Node.js сейчас, или уже есть что-то круче?
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    берись
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.119
    Симпатии:
    1.245
    Адрес:
    там-сям
    Если вопрос в том, надо ли изучать новую тему только потому что так вроде бы быстрее, то мой совет — НЕТ.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    JS изучить стоит. Ноду, если знаешь JS, поднимешь, в случае чего, без проблем. Главное - сам JS. Ибо он укурен.
     
  5. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Да у меня давно руки чесались попробовать что-то кроме PHP. Отказаться от PHP я не смогу конечно, ибо это мой хлеб. Но я сейчас переписываю один из своих сайтов с нуля, и по-моему это хороший повод попробовать что-то новое. Синтаксис я посмотрел, мне понравился - простой, лаконичный. Сомнения только по-поводу свежести библиотеки, есть уже io.js какой-то.
    JS полные карманы, я на jQuery собаку съел. Вообще, из того на чём я шкодю, jQuery мне больше всего нравится простотой записи. Поэтому я в сторону Node.js смотрю сейчас, а не Ruby какого-нибудь.
     
  6. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    нод хорош для организации всяких сервисов критичных к наличию постоянного подключения к клиенту. Простой веб-сервис на Restapi Тоже будет хорош при требовании обработки большого количества запросов. Всякие месседжеры, чаты и любые другие риал-тайм приложения. Если подобное требуется, то изучать стоит.
    Заодно и плагины, включая Socket.io как минимум.
    Совет. Если вы хотите всерьёз писать на "серверном" JavaScript, забудьте то что вы делали во всяких jquery. Это поможет быстрее понять и применять. А потом и по свежему взглянуть на браузерный js.
     
  7. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    попробуй python
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    jQuery != JS. В плане разработки. В jQuery 95% укуренности pure-JS-а нивелировано. Для того такие либы и создаются. Чтобы можно было пользоваться JS-ом не зная тонкостей JS-а, не вдаваясь в дебри его упоротых парадигм и тд и тп. На ноде это не прокатит, боюсь. Там надо знать именно pure_JS-кунгфу.
     
  9. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Да переопределять и наследовать я научился из PHP, смогу применить это в JS, если что.
    Нашёл кстати неплохой гайд вроде, может ещё кому пригодится:
    http://www.nodebeginner.ru/
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Нет, не сможешь, я гарантирую это. Наследования в JS такие же упоротые и евпанутые, как и все остальное. В этом вся суть JS. Он весь состоит из нихера не интуитивных костылей, эмулирующих то или иное поведение, свойственное другим ЯП.

    Твои знания PHP вообще никак не решают в данном случае. Так же как и твои знания любого другого языка. Потому что JS у нас осооообенный. И учился в школе для особенных языков программирования.
     
  11. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Лол)) Ну, я то буду с нуля писать, так что меня никто не заставляет использовать упоротые методы многоэтажного переопределения. Мой первый сайт на PHP вообще был в процедурном стиле, с кучей функций без классов, а переменные хранились в глобальном массиве. Потому что мне так было удобно и понятно. И ничего, работал себе, долго прослужил даже. Думаю, с Node.js я тоже не стану сразу изобретать сверх-запутанную систему, а напишу так как удобно мне.
     
  12. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Есть там масса нюансов всё-равно, включая event-driven...
    Касательно изобретений лишних систем, некоторые плагины и фреймворки поверх него стоит брать сразу. В противном случае увязните. Если цель изучать досконально, а не сразу написать решение, то можно потыкать его палкой подольше.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Не станешь делать запутанные системы, в результате ничего не сможешь сделать вообще. JS весь сделан из запутанных систем. Если хочешь что-то там делать, то нужно сходу, мордой удариться о такие факты, как, например:

    Функция - это объект. Объект это функция. Функция может иметь методы и прототип. А прототип это одновременно и статический и динамический родитель. При этом понятия статики нет. Но если хочется, можно сделать. Понятия классов тоже нет. Да что уж там, понятия наследования как такового, тоже нет. Два объекта, которые не производные классов, а функции, могут ссылаться на одного предка-прототипа, но каждый по-своему, на свое видение этого предка. При этом, в языке, где нет классов, есть конструкторы. Любая функция, вызванная через new - это конструктор. Но не обязательно так делать, чтобы создать объект.

    Я молчу о том, что объекты, которые и не объекты вовсе в классическом понимании, а, скорее, хэш-таблицы, у которых некоторые поля являются функциями в силу того, что функция это тоже объект, могут одалживать друг другу методы и обмениваться контекстами.

    Поверь, эта кроличья нора просто бездонная.



    JS, пожалуй, один из самых гибких языков на свете. Это его благодать, это его тяжелейшее проклятье. Потому что как следствие - вместо синтаксических конструкций он состоит из сниппетов и "бестпрактис" чуть более, чем весь.
     
  14. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    А учить что?)
    Это же Js-серерный только. =)
    Воспользоваться добавленными объектами. Не?))
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  16. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Да там не то что учить, больше переосмыслать саму логику построения приложений. Если в пхп скрипт выполняется построчно, то в ноде всё асинхронно. А ещё, в пхп ты объявил переменную, скрипт закончил работу и переменной больше нет. А в ноде она будет висеть в оперативке, пока ты её не потрёшь. Из-за этого можно зафейлиться например не потерев переменную admin = true. Но зато не надо лазить каждый раз в БД - если ты что-то вытащил, то можно оставить это в оперативке.

    З.Ы. Мне тут подсказали ещё неплохой видео-курс от создателя javascript.ru, курю пока его:
    http://www.youtube.com/watch?v=ILpS4Fq3lmw&list=PLsuEohlthX ... KHgBHsd3Dx
     
  17. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    На самом деле всё интереснее.
     
  18. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Этого уже достаточно, чтобы призадуматься.
    Сам сейчас активно JS учу по-взрослому и сомнения меня все больше гложат. Стиль, который он навязывает - это просто ад. Сопровождаемость кода стремится к нулю. При том, что не придраться - язык крайне гибкий и динамичный до невозможности просто. Но обратная сторона этой гибкости печалит.