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

  Рет қаралды 19,735

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

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

Күн бұрын

Пікірлер: 88
@CHPK-STEPLER
@CHPK-STEPLER Жыл бұрын
Насчет того что нужно развиваться постепенно полностью с тобой согласен. Это твоя сильная сторона - разжевывать без лишних усложнений. Спасибо тебе за твой труд.
@alexanderchaika8673
@alexanderchaika8673 Жыл бұрын
Мне очень нравится этот преподаватель. Так держать Дмитрий
@uzurbatya
@uzurbatya 8 ай бұрын
Однозначно, преподаватель он замечательный
@Nailed_It_Tutorials
@Nailed_It_Tutorials 6 ай бұрын
2 Дня мучался с тем как заставить ноду заработать))) Спасибо за видео)
@DeadlockFree
@DeadlockFree Жыл бұрын
На 09:40 упоминается Swoole, который как раз абсолютно то же самое позволяет реализовывать. Было выдвинуто предположение что на основе микрослипов. Ровно с таким же успехом можно предположить, что и node.js это делает на микрослипах. Модули php не основываются на языке php, не ограничиваются его синтаксисом, ограничениями и т.п., они пишутся как правило на C или C++ и наоборот расширяют возможности базового ПХП. Ну и вот видимо, Swoole хороший тому пример, в рамках рассмотренной задачи.
@4elovek132
@4elovek132 10 күн бұрын
отлично объясняешь
@zurkevich
@zurkevich Жыл бұрын
Дмитрий, вы слукавили, данная задача решается на PHP при помощи сокета, селекта и генератора. Получается полностью идентичный функционал, асинхронно в один поток, без использования дополнительных экземпляров скрипта для каждого клиента.
@grxgvr4987
@grxgvr4987 Жыл бұрын
Природа php настолько же синхронна насколько и синхронна природа js. Если говорить про EventLoop то он является отдельным модулем написанным на С++ (lib-uv) в случае node js. Как и swoole является отдельным модулем написанным на С++. Если уж говорить про платформу то более честным сравнением будет node и swoole + php или же amphp в котором между прочим в качестве одного из драйверов eventloop выступает libuv, тот же что и в node. Конкретно в данном случае для ноды eventloop идёт из коробки что конечно удобне в случае когда хочется получить результат быстрее чем ставить отдельные модули. Но опять же сравнение не корректное так как автор говорит о преимуществах ноды из 2013, на сегодняшний день не так просто найти серверный язык который не умеет в асинхронную обработку.
@memoryspeak
@memoryspeak Жыл бұрын
Отличный пример, спасибо.
@mk3mk3mk
@mk3mk3mk Жыл бұрын
я сам долго выбирал стек. Смотрел в сторону php, node.js, python и др. и именно то, что можно легко разместить, определило выбор в сторону php. потому что node.js это надо vps, либо heroku a php на любом сервере есть
@МихаилКрамер-н7ш
@МихаилКрамер-н7ш Жыл бұрын
Когда что-то серьезное на пыхе, тоже лучше vps
@sharkman6434
@sharkman6434 Жыл бұрын
в смысле на любом сервере- то есть сделаешь простейший апи сервер для фронта -загрузишь это на тот же vercel или netlify и будет работать ? на ноде сервера не пишу, пишут их на экспресе или на несте ) на ноде приложения пишу а ля вебпак например )
@МихаилКрамер-н7ш
@МихаилКрамер-н7ш Жыл бұрын
@@sharkman6434 А экспресс и нест на чём написаны?
@Crazzy501
@Crazzy501 Жыл бұрын
отличный инструмент в помощь php бекенду
@chip253
@chip253 Жыл бұрын
Преодолеть природу легко - используйте ReactPhp. Запустите сервер как процесс и обрабатывайте запросы аналогично ноду... Странно многие не знают современный php может работать как в синхронном так и в асинхроннм режиме. Вы можете так же использовать промисы и async. На node это легче и быстрей.
@tnsaturday
@tnsaturday Жыл бұрын
Так и на питоне вроде как давно уже можно. Видео только начал смотреть, поэтому мнения по ноде пока нет.
@__kawaii
@__kawaii Жыл бұрын
Дмитрий, Вы самый интересный рассказчик в айти. Серьезно, я не знаю никого красноречивее, просто тупо приятно слушать, а главное все понятно. Нов видео совершенно никаких таких доводов к изучению ноды нет. По сути это прослойка между клиентом и php-сервером, для работы с сокетами. Но дело в том, чтобы работать по такой схеме, учить ноду не нужно вообще, достаточно установить пакет с вебсокет-сервером из npm, настроить за две минуты по мануалу и больше ноду изнутри не трогать годами, крутится и крутится. Я так понимаю что ниша не поменяется: монолит - php \ .net, микросервисы - go, вебсокеты - нода
@СтаниславЗдановский
@СтаниславЗдановский Жыл бұрын
Отличная подача!!! Все супер понятно! Спасибо большое!
@ТёмаКоролёв-к6ф
@ТёмаКоролёв-к6ф Жыл бұрын
Я конечно пишу на NodeJS, но очень удивился о возможностях PHP. Вдруг вы тоже об этом не знали. Не смотря на то что PHP однопоточный и не асинхронный, при блокировке потока каким то долгим скриптом PHP продолжает работать у других как будто создается для каждого пользователя отдельный поток.
@nomadirl3380
@nomadirl3380 Жыл бұрын
Дядь, изучи вопрос, не пиши ерунду. Изначально под каждый запрос пользователя создаётся отдельный процесс, грубо говоря php.exe. Таким образом все пользователи работают в своих процессах, они не мешают друг другу. Недостаток в том что каждый раз приходится с нуля прогружать программу-интерпретатор php.exe, со всеми конфигами, глобальными переменными и т.д. Также интерпретатор php.exe можно расширять как угодно, если написать к нему модули на языке С. На этом построены различные приблуды на подобие reactPHP, Swoole и прочих, которые могут "переопределить" стандартное поведение php создавать новые php.exe процессы под каждого пользователя... (Это если коротко). А вообще это всё костыли, php морально устарел, есть "языки" которые из коробки работают как того требует здравый смысл (Node.js к ним кстати не относится, это тоже Франкенштейн из говна и палок для умственно отсталых JS-кодеров)
@ТёмаКоролёв-к6ф
@ТёмаКоролёв-к6ф Жыл бұрын
@@nomadirl3380 Не понимаю где ты тут увидел ерунду, и к чему ты это вообще написал. Предположу, чтобы самоутвердиться. Я поясню, что в моем комментрий отсутствует какое либо утверждение и подметил это сугубо из своего опыта словом "как будто", что в принципе моим комментарием и так понятно о чём идёт речь. А ещё зачем то продолжил про ноду и обосрал комьюнити JS с пхп. Одним словом🤡
@алексавы-р5к
@алексавы-р5к Жыл бұрын
@@nomadirl3380 лол))) прочитай про fastcgi и php-fpm. php использует только один процесс с конфигом, глоб. переменными и т.д., а дальше php работает как cgi скрипт. php морально устарел? лол))) php это лидирующий язык в мире веб. А кто конкуренты? нод? еще в 15 году обещали, что нод обгонит пхп по всем направлениям, но что-то так и не обогнал. питон? вакансий на питоне для веб прогеров в разы меньше, чем на пхп. пхп простой, удобный и может решать 97% любых задач, которые надо в вебе. асинхронность решается очередями для большинства задач так же хватает. нужно что-то более быстрое? микросервисы на го в помощь. короч дичь полнейшую ты написал.
@nomadirl3380
@nomadirl3380 Жыл бұрын
@@алексавы-р5к спасибо за знания
@tnsaturday
@tnsaturday Жыл бұрын
@@алексавы-р5к php лидирующий в мире веб? У тебя мир веб - это интернет магазины на вордпресс?
@react6678
@react6678 Жыл бұрын
Благодарю Дмитрия за качественный материал с изучения которого невозможно соскочить
@МихаилКрамер-н7ш
@МихаилКрамер-н7ш Жыл бұрын
Ну Swoole фактически делает из пыха нод жс, в том числе и асинхронность.
@AleksandrArtroom
@AleksandrArtroom Жыл бұрын
Не подумайте, что реклама, но на Бегете в стандартном хостинге есть поддержка Ноде.ЖС на которой я сделал сайт. Реализовали они Нод через Докер и не надо мучить мозг и что то там арендовать дополнительное и настраивать свой сервер.
@DimaTiunov
@DimaTiunov 11 ай бұрын
Да… Но работает он там довольно спорно. Лучше билдить всё в локальном гитлабе, а ставить всё уже на любом шареде без сборки
@Tavda
@Tavda Жыл бұрын
А из PHP разве нельзя своего демона делать, который тоже самое будет делать? Знаю, что можно из PHP запускать дочерние процессы. Даже как-то делал такое, но из-за systemd выкинул эту ненужную мне штуку и стал запускать просто несколько процессов (это просто было компоненты демона, которые занимались разными делами, получали данные из порта, обрабатывали и отправляли POST запросом на веб-сервер). Ну и тот же Redis использовать для передачи событий к демону.
@Revalto
@Revalto Жыл бұрын
Можно
@аавыф-б4о
@аавыф-б4о Жыл бұрын
а ролик крутой, лайк! так а что, PHP не умеет в асинхрон? или sleep() в асинхронном выполнении работает также? (я 1Сник)
@radikovichkz2470
@radikovichkz2470 Жыл бұрын
Php рожден чтобы умирать, а чтобы сделать его работающим процессом достаточно связать с roadrunner. Не стоило автору сравнивать с node js абсолютно разные инструменты
@renegat-rm
@renegat-rm Жыл бұрын
Специалист становится профессиональным инженером тогда, когда перестает чмырить труд других специалистов...
@RomanRachkov
@RomanRachkov Жыл бұрын
Дмитрий, здравствуйте. Хотелось бы узнать а вы SmartGrid поддерживаете еще? Просто на гитхабе смотрю вам еще с июля отправили пулреквест на использование math.div в sass билде. а то я вот ща познакомился с ним и мне понравилось. Да только вот деприкейты глаза мазолят)
@frontenddeveloper7987
@frontenddeveloper7987 Жыл бұрын
Дмитрий не только отличный преподаватель, но и психолог. Умеет преподать сложную информацию в таком ключе, чтобы человек не соскочил с её изучения при первом знакомстве. Курс не имеет аналогов
@DodgeViper188
@DodgeViper188 Жыл бұрын
Я обязательно куплю курс у этого парня!
@makaronnik1988
@makaronnik1988 Жыл бұрын
Без слипов прекрасно работает Amphp. У него под капотом ивентлуп по типу js-кого и если правильно писать, то нет и блокировок. Но, в плане расширяемости и комьюнити он сильно проигрывает ноду и бесчисленному количеству фреймворков и библиотек
@Бензини
@Бензини Жыл бұрын
А golang не подвинет сильно РНР и nodejs??
@DreamingDolphing
@DreamingDolphing Жыл бұрын
Go и Rust для микросервисов отлично подходят, тут проблема в том, что специалистов на эти языки программирования не так много, они не мейнстримовые.
@Бензини
@Бензини Жыл бұрын
@@DreamingDolphing растёт популярность
@andreykhalepov8260
@andreykhalepov8260 Жыл бұрын
Всему свое время, Rust завоюет свою нишу, и на нашей улице будет праздник
@konstantintanat4462
@konstantintanat4462 Жыл бұрын
возможно ошибаюсь. Не спец в ноде. Но по мне ее главное преимущество один язык на сервере и клиенте. Что для кого то может быть большим плюсом. А в остальном в сравнении с развитыми серверными ЯП преимуществ нет. Поэтому и решил глянуть этот ролик для прояснения темы. Но автор не особо в теме
@ГеоргійКоваленко-у8ф
@ГеоргійКоваленко-у8ф Жыл бұрын
Нода хороша для задач связанных с вводом/выводом (чат, боты, рендеринг страниц), также, неплохая для не больших/средних систем ибо относительно проста, постоянно развивается, есть годные фреймворки (тот же Nest, Adonis). P.S про один язык на сервере и на фронтенде - очень спорный плюс. Да, язык то один, но практики на бекенде и на фронтенде очень отличаются, и все равно фронтендеру прийдется доучиваться чтобы писать бек на ноде (базы данных, линукс, REST, TypeScript ибо на ноде Ts - это как стандарт почти)
@DimaTiunov
@DimaTiunov 11 ай бұрын
@@ГеоргійКоваленко-у8фввод вывод намного лучше писать на многопоточном языке, ибо при rpc 100к и больше эвент луп просто умрёт
@deluxenew1
@deluxenew1 Жыл бұрын
мощь!
@compolomus9719
@compolomus9719 Жыл бұрын
для новичка пощупать ноду надо выкинуть 2к денег, при том ему вряд ли надо писать онлайн чятики и прочее, ему статику для начала припилить на хтмл + чуть жс, что хватает примерно 200 рублей аренда хостинга с доменом на пол года, там же и пых и мускул
@ktotut5378
@ktotut5378 Жыл бұрын
Многопоточность в node?
@nitroexpress9928
@nitroexpress9928 Жыл бұрын
Есть со времен одной из обнов, но в основном просто в кластерном режиме несколько процессов запускают и не парятся.
@justth0r
@justth0r Жыл бұрын
Согласен по поводу развития постепенно, для начала надо было пробросить порты через маршрутизатор в интернет и сделать из своего ПК хост, без использования платных хостингов, где слишком много геморроя было показано, а запуск сервера через консоль, это эпик =) на PHP закинул и всё работает без танцев с бубном. Начали с того, чем лучше, а закончили тем, чем хуже =) каждая технология хороша для своих задач.
@StoxFT
@StoxFT Жыл бұрын
Так и да, где тесты, где хоть какое-нибудь сравнение? Где инфа про JIT, который хреново реализован до сих пор в JS, но нормально реализован в PHP? Я не хейтер, просто непонятно откуда инфа, исключительно интересуюсь
@nitroexpress9928
@nitroexpress9928 Жыл бұрын
А что не так с JIT на ноде? Движок V8 вроде как не дубы делали, да и по факту она очень даже шустро работает (умники всякие любят сравнивать какой-нибудь дотнет в 12 потоков против ноды в один поток и говорить что C# в 5 раз быстрее, но если те же тесты прогнать на ноде в кластерном режиме, оказывается что на самом деле производительность +/- однояйцевая ) -тоже чисто интересуюсь.
@andrejbasharin9687
@andrejbasharin9687 Жыл бұрын
node открывает путь во full-stack develop для фронтендера
@DarkShadowWork
@DarkShadowWork Жыл бұрын
А джанго как поживает?
@МихалычЛермонтов
@МихалычЛермонтов Жыл бұрын
Хорошо бы в перспективе сделать курс linux-а для вэб-разработчиков
@lemran5033
@lemran5033 Жыл бұрын
"Раздает ответ по интервалу, а не тогда, когда новые данные появились" Как из php скрипта передать эти данные в node?
@DeadlockFree
@DeadlockFree Жыл бұрын
как вариант Redis, по-моему автор в видео это где-то упоминал
@Hayabusa17
@Hayabusa17 Жыл бұрын
а можно установить nodejs без ngnix
@konstantintanat4462
@konstantintanat4462 Жыл бұрын
очередной чудо эксперт. Чье гугление вопроса ограничено 2 первыми ссылками. А что мешает использовать сокеты или reactPHP ?
@СергейДолгорукий
@СергейДолгорукий Жыл бұрын
php работает через nginx и fpm, никаких 100 процессов index.php не будет
@DeadlockFree
@DeadlockFree Жыл бұрын
это еще почему-же? Под каждый запрос будет выделяться процесс. А т.к. у нас у каждого процесса вечный цикл со слипом, то эти процессы не завершаться никогда, если только по превышении max_execution_time (если он не равен 0) или connection_aborted (прописано внутри while, в примере). Так что будет, сколько активных клиентов столько и копий процессов. Что ж тут не сходится-то? nginx магии не делает, а fpm именно так и работает - выделяет из пула процесс под запрос.
@СергейДолгорукий
@СергейДолгорукий Жыл бұрын
@@DeadlockFree там есть ограничение на максимальное количество процессов
@DeadlockFree
@DeadlockFree Жыл бұрын
​@@СергейДолгорукий ​да, но суть не меняет. И ситуацию не улучшает, скорей наоброт, т.к сервер попросту не сможет обслуживать новых клиентов. Он упрется в это ограничение и, вероятно, довольно быстро. Так что это на столько кривой костыль, что крайне не рекомендовал бы к использованию (метод while/sleep).
@fromillia
@fromillia Жыл бұрын
"Наверное этот дядя смог преодолеть природу РНР" - К слову о выборе инструмента под задачу)
@dx8026
@dx8026 Жыл бұрын
Да блин о каких преимуществах идёт речь, NodeJS(микро сервисы), PHP(полномасштабные проекты). Я не имею ввиду что на NodeJS нельзя реализовать очень большие проекты, просто это лишено смысла исходя из удобства того же PHP, Python.... Как применить NodeJS взять express и написать код))))
@алексавы-р5к
@алексавы-р5к Жыл бұрын
а что на пхп нельзя микросервисы писать?
@failj3847
@failj3847 Жыл бұрын
@@алексавы-р5к можно, но на node удобнее
@alenache1
@alenache1 Жыл бұрын
+++++++++++++ 👍👍👍👍👍👍
@voodooman08
@voodooman08 Жыл бұрын
But is it blazingly fast?) (c) Rust jokes
@nickfornit60
@nickfornit60 Жыл бұрын
Как можно сравнивать бульдога с носорогом? клиентский язык и серверный? какой только хрени не услышишь от "программистов"
@andrewyo3374
@andrewyo3374 Жыл бұрын
А что кто-то еще пишет на php? :)
@tordok7158
@tordok7158 Жыл бұрын
Ну да
@Kiko-fm7zl
@Kiko-fm7zl Жыл бұрын
конечно
@andreyvoskresenskiy2284
@andreyvoskresenskiy2284 Жыл бұрын
Для тех кто в секте свидетелей похорон PHP :). Вышла новая версия PHP 8.2, очень популярный фреймворк Laravel каждые полгода выпускает обновления, Symfony для приверженцев архитектурных паттернов по-прежнему живой и широко используется, Slim для тех кто делает микросервисы, Swoole для тех кто не может жить без асинхронности. Грамотные менеджеры проектов избегают неоправданных зоопарков технологий и там где возможно обходятся одним языком и это в значительной части PHP.
@nomadirl3380
@nomadirl3380 Жыл бұрын
Это уже устаревшие Г., попробовали и забыли. Сейчас в ходу Го и тот же PHP, а Node.js остался просто забытым Легаси, с него наоборот уходят
@mirvin11
@mirvin11 6 ай бұрын
Откуда же у вас такое мнение? Сейчас js на бэке с новыми рантаймами вообще новое дыхание получил.
@rondo1568
@rondo1568 Жыл бұрын
Здравствуйте Дмитрий!!! Как с вами связаться? У меня к вам есть личный вопрос.
@radikovichkz2470
@radikovichkz2470 Жыл бұрын
Node js подходит для микросервисов и чатов. Php выдерживает и по 10 млн запросов в сутки здесь уже от сервера зависит. Скажите есть что то подобное в node js типа надежного symfony laravel wordrpress которые поднимается за 2 часа со всеми нужными библиотеками, а что насчет ооп . А что будете делать если процесс node упадёт ) php с ошибкой но отдаст контент. Уважаемый для каждой задачи свой инструмент , лучше не стоит нести чушь. Node придуман для фронтендеров там и останется.
@ГеоргійКоваленко-у8ф
@ГеоргійКоваленко-у8ф 3 ай бұрын
ООП - TS ну и туда же Nest (та есть DI, модули по сути слизанный с ангуляра, Java Spring) … Придуман для фротендеров … хммм… у нас весь бек написан на Node.js + Nest что мы делаем не так ?)
@IshchenkoVitaliy
@IshchenkoVitaliy Жыл бұрын
Насчет того что нужно развиваться постепенно полностью с тобой согласен. Это твоя сильная сторона - разжевывать без лишних усложнений. Спасибо тебе за твой труд.
@dimovich85
@dimovich85 Жыл бұрын
Хелло) согласен
Приключения Node.js в продакшене
39:12
Yandex for Developers
Рет қаралды 11 М.
小蚂蚁会选到什么呢!#火影忍者 #佐助 #家庭
00:47
火影忍者一家
Рет қаралды 127 МЛН
ЗНАЛИ? ТОЛЬКО ОАЭ 🤫
00:13
Сам себе сушист
Рет қаралды 3,8 МЛН
Colorful Pasta Painting for Fun Times! 🍝 🎨
00:29
La La Learn
Рет қаралды 308 МЛН
MAGIC TIME ​⁠@Whoispelagheya
00:28
MasomkaMagic
Рет қаралды 31 МЛН
React. Вводный курс. Урок 1. Суть фреймворков
27:58
Дмитрий Лаврик
Рет қаралды 6 М.
2024 10 19 13 01 35
1:26:45
Максим Ефимов
Рет қаралды 47
Сервер на Node.js от простого к сложному. Исчерпывающее руководство
1:20:29
WebDev с нуля. Канал Алекса Лущенко
Рет қаралды 20 М.
Все, что нужно знать про Node.js
58:55
Trampoline Meetup
Рет қаралды 30 М.
React JS c Нуля - Курс для начинающих БЕЗ ВОДЫ [2024]
3:42:01
Владилен Минин
Рет қаралды 341 М.
小蚂蚁会选到什么呢!#火影忍者 #佐助 #家庭
00:47
火影忍者一家
Рет қаралды 127 МЛН