Тёмный

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

Дмитрий Лаврик
Подписаться 57 тыс.
Просмотров 19 тыс.
50% 1

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

Опубликовано:

 

5 дек 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 86   
@IshchenkoVitaliy
@IshchenkoVitaliy Год назад
Насчет того что нужно развиваться постепенно полностью с тобой согласен. Это твоя сильная сторона - разжевывать без лишних усложнений. Спасибо тебе за твой труд.
@dimovich85
@dimovich85 Год назад
Хелло) согласен
@memoryspeak
@memoryspeak Год назад
Отличный пример, спасибо.
@alexanderchaika8673
@alexanderchaika8673 Год назад
Мне очень нравится этот преподаватель. Так держать Дмитрий
@uzurbatya
@uzurbatya 3 месяца назад
Однозначно, преподаватель он замечательный
@zurkevich
@zurkevich Год назад
Дмитрий, вы слукавили, данная задача решается на PHP при помощи сокета, селекта и генератора. Получается полностью идентичный функционал, асинхронно в один поток, без использования дополнительных экземпляров скрипта для каждого клиента.
@DeadlockFree
@DeadlockFree Год назад
На 09:40 упоминается Swoole, который как раз абсолютно то же самое позволяет реализовывать. Было выдвинуто предположение что на основе микрослипов. Ровно с таким же успехом можно предположить, что и node.js это делает на микрослипах. Модули php не основываются на языке php, не ограничиваются его синтаксисом, ограничениями и т.п., они пишутся как правило на C или C++ и наоборот расширяют возможности базового ПХП. Ну и вот видимо, Swoole хороший тому пример, в рамках рассмотренной задачи.
@RomanRachkov
@RomanRachkov Год назад
Дмитрий, здравствуйте. Хотелось бы узнать а вы SmartGrid поддерживаете еще? Просто на гитхабе смотрю вам еще с июля отправили пулреквест на использование math.div в sass билде. а то я вот ща познакомился с ним и мне понравилось. Да только вот деприкейты глаза мазолят)
@user-qv6rt4oz9o
@user-qv6rt4oz9o Год назад
Отличная подача!!! Все супер понятно! Спасибо большое!
@DailyGuideVideos
@DailyGuideVideos Месяц назад
2 Дня мучался с тем как заставить ноду заработать))) Спасибо за видео)
@Crazzy501
@Crazzy501 Год назад
отличный инструмент в помощь php бекенду
@grxgvr4987
@grxgvr4987 10 месяцев назад
Природа php настолько же синхронна насколько и синхронна природа js. Если говорить про EventLoop то он является отдельным модулем написанным на С++ (lib-uv) в случае node js. Как и swoole является отдельным модулем написанным на С++. Если уж говорить про платформу то более честным сравнением будет node и swoole + php или же amphp в котором между прочим в качестве одного из драйверов eventloop выступает libuv, тот же что и в node. Конкретно в данном случае для ноды eventloop идёт из коробки что конечно удобне в случае когда хочется получить результат быстрее чем ставить отдельные модули. Но опять же сравнение не корректное так как автор говорит о преимуществах ноды из 2013, на сегодняшний день не так просто найти серверный язык который не умеет в асинхронную обработку.
@react6678
@react6678 Год назад
Благодарю Дмитрия за качественный материал с изучения которого невозможно соскочить
@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 А экспресс и нест на чём написаны?
@chip253
@chip253 Год назад
Преодолеть природу легко - используйте ReactPhp. Запустите сервер как процесс и обрабатывайте запросы аналогично ноду... Странно многие не знают современный php может работать как в синхронном так и в асинхроннм режиме. Вы можете так же использовать промисы и async. На node это легче и быстрей.
@tnsaturday
@tnsaturday Год назад
Так и на питоне вроде как давно уже можно. Видео только начал смотреть, поэтому мнения по ноде пока нет.
@user-sl4jq9op9l
@user-sl4jq9op9l Год назад
а ролик крутой, лайк! так а что, PHP не умеет в асинхрон? или sleep() в асинхронном выполнении работает также? (я 1Сник)
@radikovichkz2470
@radikovichkz2470 Год назад
Php рожден чтобы умирать, а чтобы сделать его работающим процессом достаточно связать с roadrunner. Не стоило автору сравнивать с node js абсолютно разные инструменты
@__kawaii
@__kawaii Год назад
Дмитрий, Вы самый интересный рассказчик в айти. Серьезно, я не знаю никого красноречивее, просто тупо приятно слушать, а главное все понятно. Нов видео совершенно никаких таких доводов к изучению ноды нет. По сути это прослойка между клиентом и php-сервером, для работы с сокетами. Но дело в том, чтобы работать по такой схеме, учить ноду не нужно вообще, достаточно установить пакет с вебсокет-сервером из npm, настроить за две минуты по мануалу и больше ноду изнутри не трогать годами, крутится и крутится. Я так понимаю что ниша не поменяется: монолит - php \ .net, микросервисы - go, вебсокеты - нода
@Tavda
@Tavda Год назад
А из PHP разве нельзя своего демона делать, который тоже самое будет делать? Знаю, что можно из PHP запускать дочерние процессы. Даже как-то делал такое, но из-за systemd выкинул эту ненужную мне штуку и стал запускать просто несколько процессов (это просто было компоненты демона, которые занимались разными делами, получали данные из порта, обрабатывали и отправляли POST запросом на веб-сервер). Ну и тот же Redis использовать для передачи событий к демону.
@Revalto
@Revalto Год назад
Можно
@user-lc9wi7cz8d
@user-lc9wi7cz8d Год назад
Хорошо бы в перспективе сделать курс linux-а для вэб-разработчиков
@user-nu2jz1sb4s
@user-nu2jz1sb4s Год назад
Ну Swoole фактически делает из пыха нод жс, в том числе и асинхронность.
@DodgeViper188
@DodgeViper188 Год назад
Я обязательно куплю курс у этого парня!
@juicygirls3989
@juicygirls3989 Год назад
когда же вы перейдете уже на линуксе
@makaronnik1988
@makaronnik1988 Год назад
Без слипов прекрасно работает Amphp. У него под капотом ивентлуп по типу js-кого и если правильно писать, то нет и блокировок. Но, в плане расширяемости и комьюнити он сильно проигрывает ноду и бесчисленному количеству фреймворков и библиотек
@renegat-rm
@renegat-rm Год назад
Специалист становится профессиональным инженером тогда, когда перестает чмырить труд других специалистов...
@DarkShadowWork
@DarkShadowWork Год назад
А джанго как поживает?
@deluxenew1
@deluxenew1 Год назад
мощь!
@justth0r
@justth0r Год назад
Согласен по поводу развития постепенно, для начала надо было пробросить порты через маршрутизатор в интернет и сделать из своего ПК хост, без использования платных хостингов, где слишком много геморроя было показано, а запуск сервера через консоль, это эпик =) на PHP закинул и всё работает без танцев с бубном. Начали с того, чем лучше, а закончили тем, чем хуже =) каждая технология хороша для своих задач.
@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 лидирующий в мире веб? У тебя мир веб - это интернет магазины на вордпресс?
@frontenddeveloper7987
@frontenddeveloper7987 Год назад
Дмитрий не только отличный преподаватель, но и психолог. Умеет преподать сложную информацию в таком ключе, чтобы человек не соскочил с её изучения при первом знакомстве. Курс не имеет аналогов
@user-hz3tr9bu1h
@user-hz3tr9bu1h Год назад
А golang не подвинет сильно РНР и nodejs??
@DreamingDolphing
@DreamingDolphing Год назад
Go и Rust для микросервисов отлично подходят, тут проблема в том, что специалистов на эти языки программирования не так много, они не мейнстримовые.
@user-hz3tr9bu1h
@user-hz3tr9bu1h Год назад
@@DreamingDolphing растёт популярность
@andreykhalepov8260
@andreykhalepov8260 Год назад
Всему свое время, Rust завоюет свою нишу, и на нашей улице будет праздник
@rondo1568
@rondo1568 Год назад
Здравствуйте Дмитрий!!! Как с вами связаться? У меня к вам есть личный вопрос.
@ktotut5378
@ktotut5378 Год назад
Многопоточность в node?
@nitroexpress9928
@nitroexpress9928 Год назад
Есть со времен одной из обнов, но в основном просто в кластерном режиме несколько процессов запускают и не парятся.
@Hayabusa17
@Hayabusa17 Год назад
а можно установить nodejs без ngnix
@AleksandrArtroom
@AleksandrArtroom 10 месяцев назад
Не подумайте, что реклама, но на Бегете в стандартном хостинге есть поддержка Ноде.ЖС на которой я сделал сайт. Реализовали они Нод через Докер и не надо мучить мозг и что то там арендовать дополнительное и настраивать свой сервер.
@DimaTiunov
@DimaTiunov 6 месяцев назад
Да… Но работает он там довольно спорно. Лучше билдить всё в локальном гитлабе, а ставить всё уже на любом шареде без сборки
@lemran5033
@lemran5033 Год назад
"Раздает ответ по интервалу, а не тогда, когда новые данные появились" Как из php скрипта передать эти данные в node?
@DeadlockFree
@DeadlockFree Год назад
как вариант Redis, по-моему автор в видео это где-то упоминал
@konstantintanat4462
@konstantintanat4462 Год назад
возможно ошибаюсь. Не спец в ноде. Но по мне ее главное преимущество один язык на сервере и клиенте. Что для кого то может быть большим плюсом. А в остальном в сравнении с развитыми серверными ЯП преимуществ нет. Поэтому и решил глянуть этот ролик для прояснения темы. Но автор не особо в теме
@user-sp1vi7fg2u
@user-sp1vi7fg2u Год назад
Нода хороша для задач связанных с вводом/выводом (чат, боты, рендеринг страниц), также, неплохая для не больших/средних систем ибо относительно проста, постоянно развивается, есть годные фреймворки (тот же Nest, Adonis). P.S про один язык на сервере и на фронтенде - очень спорный плюс. Да, язык то один, но практики на бекенде и на фронтенде очень отличаются, и все равно фронтендеру прийдется доучиваться чтобы писать бек на ноде (базы данных, линукс, REST, TypeScript ибо на ноде Ts - это как стандарт почти)
@DimaTiunov
@DimaTiunov 6 месяцев назад
@@user-sp1vi7fg2uввод вывод намного лучше писать на многопоточном языке, ибо при rpc 100к и больше эвент луп просто умрёт
@compolomus9719
@compolomus9719 Год назад
для новичка пощупать ноду надо выкинуть 2к денег, при том ему вряд ли надо писать онлайн чятики и прочее, ему статику для начала припилить на хтмл + чуть жс, что хватает примерно 200 рублей аренда хостинга с доменом на пол года, там же и пых и мускул
@StoxFT
@StoxFT Год назад
Так и да, где тесты, где хоть какое-нибудь сравнение? Где инфа про JIT, который хреново реализован до сих пор в JS, но нормально реализован в PHP? Я не хейтер, просто непонятно откуда инфа, исключительно интересуюсь
@nitroexpress9928
@nitroexpress9928 Год назад
А что не так с JIT на ноде? Движок V8 вроде как не дубы делали, да и по факту она очень даже шустро работает (умники всякие любят сравнивать какой-нибудь дотнет в 12 потоков против ноды в один поток и говорить что C# в 5 раз быстрее, но если те же тесты прогнать на ноде в кластерном режиме, оказывается что на самом деле производительность +/- однояйцевая ) -тоже чисто интересуюсь.
@andrejbasharin9687
@andrejbasharin9687 Год назад
node открывает путь во full-stack develop для фронтендера
@juicygirls3989
@juicygirls3989 Год назад
не досмотрел до конца но я для хоста юзаю nginx => reverse proxy => pm2 что бы мониторить сам процеесс
@alenache1
@alenache1 Год назад
+++++++++++++ 👍👍👍👍👍👍
@konstantintanat4462
@konstantintanat4462 Год назад
очередной чудо эксперт. Чье гугление вопроса ограничено 2 первыми ссылками. А что мешает использовать сокеты или reactPHP ?
@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 11 месяцев назад
@@user-cx8kh4sb2i можно, но на node удобнее
@andrewyo3374
@andrewyo3374 Год назад
А что кто-то еще пишет на php? :)
@tordok7158
@tordok7158 Год назад
Ну да
@Kiko-fm7zl
@Kiko-fm7zl Год назад
конечно
@andreyvoskresenskiy2284
@andreyvoskresenskiy2284 8 месяцев назад
Для тех кто в секте свидетелей похорон PHP :). Вышла новая версия PHP 8.2, очень популярный фреймворк Laravel каждые полгода выпускает обновления, Symfony для приверженцев архитектурных паттернов по-прежнему живой и широко используется, Slim для тех кто делает микросервисы, Swoole для тех кто не может жить без асинхронности. Грамотные менеджеры проектов избегают неоправданных зоопарков технологий и там где возможно обходятся одним языком и это в значительной части PHP.
@nickfornit60
@nickfornit60 Год назад
Как можно сравнивать бульдога с носорогом? клиентский язык и серверный? какой только хрени не услышишь от "программистов"
@nomadirl3380
@nomadirl3380 Год назад
Это уже устаревшие Г., попробовали и забыли. Сейчас в ходу Го и тот же PHP, а Node.js остался просто забытым Легаси, с него наоборот уходят
@mirvin11
@mirvin11 Месяц назад
Откуда же у вас такое мнение? Сейчас js на бэке с новыми рантаймами вообще новое дыхание получил.
@radikovichkz2470
@radikovichkz2470 Год назад
Node js подходит для микросервисов и чатов. Php выдерживает и по 10 млн запросов в сутки здесь уже от сервера зависит. Скажите есть что то подобное в node js типа надежного symfony laravel wordrpress которые поднимается за 2 часа со всеми нужными библиотеками, а что насчет ооп . А что будете делать если процесс node упадёт ) php с ошибкой но отдаст контент. Уважаемый для каждой задачи свой инструмент , лучше не стоит нести чушь. Node придуман для фронтендеров там и останется.
@CHPK-STEPLER
@CHPK-STEPLER Год назад
Насчет того что нужно развиваться постепенно полностью с тобой согласен. Это твоя сильная сторона - разжевывать без лишних усложнений. Спасибо тебе за твой труд.
Далее
Все, что нужно знать про Node.js
58:55
ATEEZ(에이티즈) - 'WORK' Official MV
03:15
Просмотров 9 млн
Docker за 20 минут
21:42
Просмотров 53 тыс.
Уничтожаю Node.js
8:20
Просмотров 183 тыс.
Правда о PHP
17:42
Просмотров 10 тыс.