Node.js: в чём он лучше PHP и как развернуть это чудо на реальном сервере

  Переглядів 18,853

Дмитрий Лаврик

Дмитрий Лаврик

Рік тому

Hello World Server на Node.js
Сравнение с PHP для организации Server Sent Events
Установка node на VDS
Простейшая схема привязки к домену с помощью nginx proxy_pass
А скоро курс - js.dmitrylavrik.ru/node/
В ролике использовался сервер от firstvds. Слабенький промокод, если вдруг соберётесь к ним - 6481121431

КОМЕНТАРІ: 86
@CHPK-STEPLER
@CHPK-STEPLER Рік тому
Насчет того что нужно развиваться постепенно полностью с тобой согласен. Это твоя сильная сторона - разжевывать без лишних усложнений. Спасибо тебе за твой труд.
@DailyGuideVideos
@DailyGuideVideos 15 днів тому
2 Дня мучался с тем как заставить ноду заработать))) Спасибо за видео)
@memoryspeak
@memoryspeak Рік тому
Отличный пример, спасибо.
@alexanderchaika8673
@alexanderchaika8673 Рік тому
Мне очень нравится этот преподаватель. Так держать Дмитрий
@uzurbatya
@uzurbatya 2 місяці тому
Однозначно, преподаватель он замечательный
@react6678
@react6678 Рік тому
Благодарю Дмитрия за качественный материал с изучения которого невозможно соскочить
@zurkevich
@zurkevich Рік тому
Дмитрий, вы слукавили, данная задача решается на PHP при помощи сокета, селекта и генератора. Получается полностью идентичный функционал, асинхронно в один поток, без использования дополнительных экземпляров скрипта для каждого клиента.
@user-qv6rt4oz9o
@user-qv6rt4oz9o Рік тому
Отличная подача!!! Все супер понятно! Спасибо большое!
@DeadlockFree
@DeadlockFree Рік тому
На 09:40 упоминается Swoole, который как раз абсолютно то же самое позволяет реализовывать. Было выдвинуто предположение что на основе микрослипов. Ровно с таким же успехом можно предположить, что и node.js это делает на микрослипах. Модули php не основываются на языке php, не ограничиваются его синтаксисом, ограничениями и т.п., они пишутся как правило на C или C++ и наоборот расширяют возможности базового ПХП. Ну и вот видимо, Swoole хороший тому пример, в рамках рассмотренной задачи.
@RomanRachkov
@RomanRachkov Рік тому
Дмитрий, здравствуйте. Хотелось бы узнать а вы SmartGrid поддерживаете еще? Просто на гитхабе смотрю вам еще с июля отправили пулреквест на использование math.div в sass билде. а то я вот ща познакомился с ним и мне понравилось. Да только вот деприкейты глаза мазолят)
@Crazzy501
@Crazzy501 Рік тому
отличный инструмент в помощь php бекенду
@grxgvr4987
@grxgvr4987 9 місяців тому
Природа php настолько же синхронна насколько и синхронна природа js. Если говорить про EventLoop то он является отдельным модулем написанным на С++ (lib-uv) в случае node js. Как и swoole является отдельным модулем написанным на С++. Если уж говорить про платформу то более честным сравнением будет node и swoole + php или же amphp в котором между прочим в качестве одного из драйверов eventloop выступает libuv, тот же что и в node. Конкретно в данном случае для ноды eventloop идёт из коробки что конечно удобне в случае когда хочется получить результат быстрее чем ставить отдельные модули. Но опять же сравнение не корректное так как автор говорит о преимуществах ноды из 2013, на сегодняшний день не так просто найти серверный язык который не умеет в асинхронную обработку.
@mk3mk3mk
@mk3mk3mk Рік тому
я сам долго выбирал стек. Смотрел в сторону php, node.js, python и др. и именно то, что можно легко разместить, определило выбор в сторону php. потому что node.js это надо vps, либо heroku a php на любом сервере есть
@user-nu2jz1sb4s
@user-nu2jz1sb4s Рік тому
Когда что-то серьезное на пыхе, тоже лучше vps
@sharkman6434
@sharkman6434 Рік тому
в смысле на любом сервере- то есть сделаешь простейший апи сервер для фронта -загрузишь это на тот же vercel или netlify и будет работать ? на ноде сервера не пишу, пишут их на экспресе или на несте ) на ноде приложения пишу а ля вебпак например )
@user-nu2jz1sb4s
@user-nu2jz1sb4s Рік тому
@@sharkman6434 А экспресс и нест на чём написаны?
@user-sl4jq9op9l
@user-sl4jq9op9l Рік тому
а ролик крутой, лайк! так а что, PHP не умеет в асинхрон? или sleep() в асинхронном выполнении работает также? (я 1Сник)
@radikovichkz2470
@radikovichkz2470 11 місяців тому
Php рожден чтобы умирать, а чтобы сделать его работающим процессом достаточно связать с roadrunner. Не стоило автору сравнивать с node js абсолютно разные инструменты
@chip253
@chip253 Рік тому
Преодолеть природу легко - используйте ReactPhp. Запустите сервер как процесс и обрабатывайте запросы аналогично ноду... Странно многие не знают современный php может работать как в синхронном так и в асинхроннм режиме. Вы можете так же использовать промисы и async. На node это легче и быстрей.
@tnsaturday
@tnsaturday Рік тому
Так и на питоне вроде как давно уже можно. Видео только начал смотреть, поэтому мнения по ноде пока нет.
@Tavda
@Tavda Рік тому
А из PHP разве нельзя своего демона делать, который тоже самое будет делать? Знаю, что можно из PHP запускать дочерние процессы. Даже как-то делал такое, но из-за systemd выкинул эту ненужную мне штуку и стал запускать просто несколько процессов (это просто было компоненты демона, которые занимались разными делами, получали данные из порта, обрабатывали и отправляли POST запросом на веб-сервер). Ну и тот же Redis использовать для передачи событий к демону.
@Revalto
@Revalto Рік тому
Можно
@makaronnik1988
@makaronnik1988 Рік тому
Без слипов прекрасно работает Amphp. У него под капотом ивентлуп по типу js-кого и если правильно писать, то нет и блокировок. Но, в плане расширяемости и комьюнити он сильно проигрывает ноду и бесчисленному количеству фреймворков и библиотек
@user-nu2jz1sb4s
@user-nu2jz1sb4s Рік тому
Ну Swoole фактически делает из пыха нод жс, в том числе и асинхронность.
@renegat-rm
@renegat-rm Рік тому
Специалист становится профессиональным инженером тогда, когда перестает чмырить труд других специалистов...
@__kawaii
@__kawaii Рік тому
Дмитрий, Вы самый интересный рассказчик в айти. Серьезно, я не знаю никого красноречивее, просто тупо приятно слушать, а главное все понятно. Нов видео совершенно никаких таких доводов к изучению ноды нет. По сути это прослойка между клиентом и php-сервером, для работы с сокетами. Но дело в том, чтобы работать по такой схеме, учить ноду не нужно вообще, достаточно установить пакет с вебсокет-сервером из npm, настроить за две минуты по мануалу и больше ноду изнутри не трогать годами, крутится и крутится. Я так понимаю что ниша не поменяется: монолит - php \ .net, микросервисы - go, вебсокеты - нода
@DarkShadowWork
@DarkShadowWork Рік тому
А джанго как поживает?
@Hayabusa17
@Hayabusa17 Рік тому
а можно установить nodejs без ngnix
@DodgeViper188
@DodgeViper188 Рік тому
Я обязательно куплю курс у этого парня!
@user-lc9wi7cz8d
@user-lc9wi7cz8d Рік тому
Хорошо бы в перспективе сделать курс linux-а для вэб-разработчиков
@juicygirls3989
@juicygirls3989 Рік тому
когда же вы перейдете уже на линуксе
@justth0r
@justth0r Рік тому
Согласен по поводу развития постепенно, для начала надо было пробросить порты через маршрутизатор в интернет и сделать из своего ПК хост, без использования платных хостингов, где слишком много геморроя было показано, а запуск сервера через консоль, это эпик =) на PHP закинул и всё работает без танцев с бубном. Начали с того, чем лучше, а закончили тем, чем хуже =) каждая технология хороша для своих задач.
@rondo1568
@rondo1568 Рік тому
Здравствуйте Дмитрий!!! Как с вами связаться? У меня к вам есть личный вопрос.
@deluxenew1
@deluxenew1 Рік тому
мощь!
@user-wl2xp8yo6x
@user-wl2xp8yo6x Рік тому
Я конечно пишу на NodeJS, но очень удивился о возможностях PHP. Вдруг вы тоже об этом не знали. Не смотря на то что PHP однопоточный и не асинхронный, при блокировке потока каким то долгим скриптом PHP продолжает работать у других как будто создается для каждого пользователя отдельный поток.
@nomadirl3380
@nomadirl3380 Рік тому
Дядь, изучи вопрос, не пиши ерунду. Изначально под каждый запрос пользователя создаётся отдельный процесс, грубо говоря php.exe. Таким образом все пользователи работают в своих процессах, они не мешают друг другу. Недостаток в том что каждый раз приходится с нуля прогружать программу-интерпретатор php.exe, со всеми конфигами, глобальными переменными и т.д. Также интерпретатор php.exe можно расширять как угодно, если написать к нему модули на языке С. На этом построены различные приблуды на подобие reactPHP, Swoole и прочих, которые могут "переопределить" стандартное поведение php создавать новые php.exe процессы под каждого пользователя... (Это если коротко). А вообще это всё костыли, php морально устарел, есть "языки" которые из коробки работают как того требует здравый смысл (Node.js к ним кстати не относится, это тоже Франкенштейн из говна и палок для умственно отсталых JS-кодеров)
@user-wl2xp8yo6x
@user-wl2xp8yo6x Рік тому
@@nomadirl3380 Не понимаю где ты тут увидел ерунду, и к чему ты это вообще написал. Предположу, чтобы самоутвердиться. Я поясню, что в моем комментрий отсутствует какое либо утверждение и подметил это сугубо из своего опыта словом "как будто", что в принципе моим комментарием и так понятно о чём идёт речь. А ещё зачем то продолжил про ноду и обосрал комьюнити JS с пхп. Одним словом🤡
@user-cx8kh4sb2i
@user-cx8kh4sb2i Рік тому
@@nomadirl3380 лол))) прочитай про fastcgi и php-fpm. php использует только один процесс с конфигом, глоб. переменными и т.д., а дальше php работает как cgi скрипт. php морально устарел? лол))) php это лидирующий язык в мире веб. А кто конкуренты? нод? еще в 15 году обещали, что нод обгонит пхп по всем направлениям, но что-то так и не обогнал. питон? вакансий на питоне для веб прогеров в разы меньше, чем на пхп. пхп простой, удобный и может решать 97% любых задач, которые надо в вебе. асинхронность решается очередями для большинства задач так же хватает. нужно что-то более быстрое? микросервисы на го в помощь. короч дичь полнейшую ты написал.
@nomadirl3380
@nomadirl3380 Рік тому
@@user-cx8kh4sb2i спасибо за знания
@tnsaturday
@tnsaturday Рік тому
@@user-cx8kh4sb2i php лидирующий в мире веб? У тебя мир веб - это интернет магазины на вордпресс?
@AleksandrArtroom
@AleksandrArtroom 9 місяців тому
Не подумайте, что реклама, но на Бегете в стандартном хостинге есть поддержка Ноде.ЖС на которой я сделал сайт. Реализовали они Нод через Докер и не надо мучить мозг и что то там арендовать дополнительное и настраивать свой сервер.
@DimaTiunov
@DimaTiunov 5 місяців тому
Да… Но работает он там довольно спорно. Лучше билдить всё в локальном гитлабе, а ставить всё уже на любом шареде без сборки
@user-hz3tr9bu1h
@user-hz3tr9bu1h Рік тому
А golang не подвинет сильно РНР и nodejs??
@DreamingDolphing
@DreamingDolphing Рік тому
Go и Rust для микросервисов отлично подходят, тут проблема в том, что специалистов на эти языки программирования не так много, они не мейнстримовые.
@user-hz3tr9bu1h
@user-hz3tr9bu1h Рік тому
@@DreamingDolphing растёт популярность
@andreykhalepov8260
@andreykhalepov8260 Рік тому
Всему свое время, Rust завоюет свою нишу, и на нашей улице будет праздник
@lemran5033
@lemran5033 Рік тому
"Раздает ответ по интервалу, а не тогда, когда новые данные появились" Как из php скрипта передать эти данные в node?
@DeadlockFree
@DeadlockFree Рік тому
как вариант Redis, по-моему автор в видео это где-то упоминал
@ktotut5378
@ktotut5378 Рік тому
Многопоточность в node?
@nitroexpress9928
@nitroexpress9928 Рік тому
Есть со времен одной из обнов, но в основном просто в кластерном режиме несколько процессов запускают и не парятся.
@frontenddeveloper7987
@frontenddeveloper7987 Рік тому
Дмитрий не только отличный преподаватель, но и психолог. Умеет преподать сложную информацию в таком ключе, чтобы человек не соскочил с её изучения при первом знакомстве. Курс не имеет аналогов
@juicygirls3989
@juicygirls3989 Рік тому
не досмотрел до конца но я для хоста юзаю nginx => reverse proxy => pm2 что бы мониторить сам процеесс
@compolomus9719
@compolomus9719 Рік тому
для новичка пощупать ноду надо выкинуть 2к денег, при том ему вряд ли надо писать онлайн чятики и прочее, ему статику для начала припилить на хтмл + чуть жс, что хватает примерно 200 рублей аренда хостинга с доменом на пол года, там же и пых и мускул
@konstantintanat4462
@konstantintanat4462 Рік тому
возможно ошибаюсь. Не спец в ноде. Но по мне ее главное преимущество один язык на сервере и клиенте. Что для кого то может быть большим плюсом. А в остальном в сравнении с развитыми серверными ЯП преимуществ нет. Поэтому и решил глянуть этот ролик для прояснения темы. Но автор не особо в теме
@user-sp1vi7fg2u
@user-sp1vi7fg2u Рік тому
Нода хороша для задач связанных с вводом/выводом (чат, боты, рендеринг страниц), также, неплохая для не больших/средних систем ибо относительно проста, постоянно развивается, есть годные фреймворки (тот же Nest, Adonis). P.S про один язык на сервере и на фронтенде - очень спорный плюс. Да, язык то один, но практики на бекенде и на фронтенде очень отличаются, и все равно фронтендеру прийдется доучиваться чтобы писать бек на ноде (базы данных, линукс, REST, TypeScript ибо на ноде Ts - это как стандарт почти)
@DimaTiunov
@DimaTiunov 5 місяців тому
@@user-sp1vi7fg2uввод вывод намного лучше писать на многопоточном языке, ибо при rpc 100к и больше эвент луп просто умрёт
@StoxFT
@StoxFT Рік тому
Так и да, где тесты, где хоть какое-нибудь сравнение? Где инфа про JIT, который хреново реализован до сих пор в JS, но нормально реализован в PHP? Я не хейтер, просто непонятно откуда инфа, исключительно интересуюсь
@nitroexpress9928
@nitroexpress9928 Рік тому
А что не так с JIT на ноде? Движок V8 вроде как не дубы делали, да и по факту она очень даже шустро работает (умники всякие любят сравнивать какой-нибудь дотнет в 12 потоков против ноды в один поток и говорить что C# в 5 раз быстрее, но если те же тесты прогнать на ноде в кластерном режиме, оказывается что на самом деле производительность +/- однояйцевая ) -тоже чисто интересуюсь.
@konstantintanat4462
@konstantintanat4462 Рік тому
очередной чудо эксперт. Чье гугление вопроса ограничено 2 первыми ссылками. А что мешает использовать сокеты или reactPHP ?
@alenache1
@alenache1 Рік тому
+++++++++++++ 👍👍👍👍👍👍
@andrejbasharin9687
@andrejbasharin9687 Рік тому
node открывает путь во full-stack develop для фронтендера
@juicygirls3989
@juicygirls3989 Рік тому
обожаю express js))
@user-so6bg4ss5h
@user-so6bg4ss5h Рік тому
php работает через nginx и fpm, никаких 100 процессов index.php не будет
@DeadlockFree
@DeadlockFree Рік тому
это еще почему-же? Под каждый запрос будет выделяться процесс. А т.к. у нас у каждого процесса вечный цикл со слипом, то эти процессы не завершаться никогда, если только по превышении max_execution_time (если он не равен 0) или connection_aborted (прописано внутри while, в примере). Так что будет, сколько активных клиентов столько и копий процессов. Что ж тут не сходится-то? nginx магии не делает, а fpm именно так и работает - выделяет из пула процесс под запрос.
@user-so6bg4ss5h
@user-so6bg4ss5h Рік тому
@@DeadlockFree там есть ограничение на максимальное количество процессов
@DeadlockFree
@DeadlockFree Рік тому
​@@user-so6bg4ss5h ​да, но суть не меняет. И ситуацию не улучшает, скорей наоброт, т.к сервер попросту не сможет обслуживать новых клиентов. Он упрется в это ограничение и, вероятно, довольно быстро. Так что это на столько кривой костыль, что крайне не рекомендовал бы к использованию (метод while/sleep).
@fromillia
@fromillia Рік тому
"Наверное этот дядя смог преодолеть природу РНР" - К слову о выборе инструмента под задачу)
@voodooman08
@voodooman08 Рік тому
But is it blazingly fast?) (c) Rust jokes
@dx8026
@dx8026 Рік тому
Да блин о каких преимуществах идёт речь, NodeJS(микро сервисы), PHP(полномасштабные проекты). Я не имею ввиду что на NodeJS нельзя реализовать очень большие проекты, просто это лишено смысла исходя из удобства того же PHP, Python.... Как применить NodeJS взять express и написать код))))
@user-cx8kh4sb2i
@user-cx8kh4sb2i Рік тому
а что на пхп нельзя микросервисы писать?
@failj3847
@failj3847 10 місяців тому
@@user-cx8kh4sb2i можно, но на node удобнее
@nickfornit60
@nickfornit60 Рік тому
Как можно сравнивать бульдога с носорогом? клиентский язык и серверный? какой только хрени не услышишь от "программистов"
@andrewyo3374
@andrewyo3374 Рік тому
А что кто-то еще пишет на php? :)
@tordok7158
@tordok7158 Рік тому
Ну да
@Kiko-fm7zl
@Kiko-fm7zl Рік тому
конечно
@andreyvoskresenskiy2284
@andreyvoskresenskiy2284 7 місяців тому
Для тех кто в секте свидетелей похорон PHP :). Вышла новая версия PHP 8.2, очень популярный фреймворк Laravel каждые полгода выпускает обновления, Symfony для приверженцев архитектурных паттернов по-прежнему живой и широко используется, Slim для тех кто делает микросервисы, Swoole для тех кто не может жить без асинхронности. Грамотные менеджеры проектов избегают неоправданных зоопарков технологий и там где возможно обходятся одним языком и это в значительной части PHP.
@nomadirl3380
@nomadirl3380 Рік тому
Это уже устаревшие Г., попробовали и забыли. Сейчас в ходу Го и тот же PHP, а Node.js остался просто забытым Легаси, с него наоборот уходят
@mirvin11
@mirvin11 22 дні тому
Откуда же у вас такое мнение? Сейчас js на бэке с новыми рантаймами вообще новое дыхание получил.
@radikovichkz2470
@radikovichkz2470 11 місяців тому
Node js подходит для микросервисов и чатов. Php выдерживает и по 10 млн запросов в сутки здесь уже от сервера зависит. Скажите есть что то подобное в node js типа надежного symfony laravel wordrpress которые поднимается за 2 часа со всеми нужными библиотеками, а что насчет ооп . А что будете делать если процесс node упадёт ) php с ошибкой но отдаст контент. Уважаемый для каждой задачи свой инструмент , лучше не стоит нести чушь. Node придуман для фронтендеров там и останется.
@IshchenkoVitaliy
@IshchenkoVitaliy Рік тому
Насчет того что нужно развиваться постепенно полностью с тобой согласен. Это твоя сильная сторона - разжевывать без лишних усложнений. Спасибо тебе за твой труд.
@dimovich85
@dimovich85 Рік тому
Хелло) согласен
Что будет с кроссовком?
00:35
Аришнев
Переглядів 1,7 млн
Уничтожаю Node.js
8:20
ExtremeCode
Переглядів 182 тис.
Node.js and GraphQl: what should be the modern server in 2022?
1:07:13
Egor Malkevich
Переглядів 33 тис.
Overview of the Node.js platform in 2021
58:55
Egor Malkevich
Переглядів 95 тис.
Сервер на Node.js от простого к сложному. Исчерпывающее руководство
1:20:29
WebDev с нуля. Канал Алекса Лущенко
Переглядів 15 тис.
🚀 Node.js  🧑‍💻 Введение в технологию ✨
1:31:54
Timur Shemsedinov
Переглядів 56 тис.
Typescript и чуть больше жести. Мотиватор / демотиватор.
28:28
Node JS - Быстрый Курс за 1 час
1:01:52
Владилен Минин
Переглядів 533 тис.