Добрый день!
Обдумываю одну идею сделать веб-сервис, но не могу выбрать между PHP и Node.js. По сути основные действия будут внести,взять из бд, отдать пару статичных страниц(хотя должен быть отдельный фронтенд). Сам изучаю PHP, но говорят что для этого дела лучше Node.js.
Хотелось бы узнать вашего совета, заранее спасибо.
RusTaylor, значит не распыляйтесь. Это опасно для эффективности. Изучайте PHP, пишите веб-сервисы на PHP, админки, классы, читайте документацию. высматривайте туториалы на ютубе целыми плэйлистами. Разберетесь с основами поищите пару тестов-онлайн, позже как будете чувствовать себя увереней в PHP ознакомьтесь с работой HTTP, HTTP, TCP/IP, FTP, SMTP протоколов. Далее переходите на фрэймворки подойдет для классического стиля ООП Yii2, использующий MVC паттерн. Кстати о паттернах их если я не ошибаюсь порядка 23. Стоит о них тоже узнать. Книги по проектированию приложения сделают ваше мышление более правильным. Далее идут базы данных. Поработайте для начала с MySQL. Стройте простые запросы, как только поймете что такое нормализация и оптимизированные запросы, переходим к sql функциям, вложенным запросам и можно еще в PostgreSQL попробовать. И так далее....
Но не забывайте про официальную документацию, там тоже много интересного пишут. Старайтесь сначала в ней разобраться, а только потом в туториалы бежать.
TCloud, хорошо, спасибо за советы. Хочу добавить, протоколы https, https, tcp/ip,ftp я знаю, пишу пару проектов на laravel, знаю SOLID и GRASP, работаю с sql(чаще с orm). В любом случае спасибо)
RusTaylor, На мой взгляд если вы уже знакомы со всем этим перспективнее делать на node.js, один язык на сервере и на клиенте, много плюсов, сам в бывшем пхп разработчик сейчас node/react.
Node.js шустрее и перспективнее, чем php. Основное преимущество node.js выход за рамки браузера и сервера, то есть к примеру можно подключить микроволновку или холодильник к сети при необходимости, у PHP таких возможностей нет. Поэтому рекомендую делать акцент на node.js, а пока трудиться в той системе, которую лучше знаешь.
OnYourLips, с чего бы это?@OnYourLips, с чего бы это? PHP кроме обращения к серверу и генерации страниц в браузере вообще ничего не может. У него даже само название за себя говорит - Personal Home Page, а node.js это продолжение js в пакетном варианте, то он уже имеет готовые модули для выполнения той или иной задачи, что значительно упрощает работу с самим js. Достаточно посмотреть как работает gulp, webpack, grunt на худой конец, более того, ........ Node или Node.js — программная платформа, основанная на движке V8 (транслирующем JavaScript в машинный код), превращающая JavaScript из узкоспециализированного языка в язык общего назначения. Node.js добавляет возможность JavaScript взаимодействовать с устройствами ввода-вывода через свой API (написанный на C++), подключать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода. Node.js применяется преимущественно на сервере, выполняя роль веб-сервера, но есть возможность разрабатывать на Node.js и десктопные оконные приложения (при помощи NW.js, AppJS или Electron для Linux, Windows и macOS) и даже программировать микроконтроллеры (например, tessel и espruino). В основе Node.js лежит событийно-ориентированное и асинхронное (или реактивное) программирование с неблокирующим вводом/выводом. НЕ ВИЖУ СМЫСЛА ПЕРЕНОСИТЬ ТО, ЧТО КОМУ-ТО ЛЕНЬ ПРОЧИТАТЬ ХОТЯ БЫ В ВИКИПЕДИИ, я даже не говорю о самом сайте Node.js.
OnYourLips, В чём-то ты прав, да ему это и не нужно знать его - зачем нужен PHP, всё можно реализовать на готовых модулях node, а что не возможно - дописать парой строчек кода на другом языке, в том числе и на приоритетном JS. Та статья древняя, как мамонт, развитие не стоит на месте. В node только одна проблема - он всё превращает в кашу, в один единый поток цифры и когда возникает ошибка, то к примеру среди тысячи возвращённых запросов слитых в одну трубу иногда сложно отыскать, что работает некорректно, где произошёл отказ. Больше в нём минусов нет. PHP при такой задаче просто заткнётся и хостеры будут трахать за нагрузку, даже при ТОП железе, но зато стабильность "ССУКО". Сам node всего лишь ускоряет разработку почти под любые задачи, что немаловажно сегодня. Где можно встретить PHP - Facebook к примеру или Wordpress, только благодаря им он всё ещё держится на плаву, а это примерно аудитория 70% жителей на планете. Ради прикола попробуй загрузить страницу Facebook на PC, только потом отпишись, успел ли ты выпить кружечку кофе или чая, пока дождался её полной загрузки.
OnYourLips, Опять же соглашусь отчасти, так как задачи бывают разные, иногда приходится оптимизировать что только создал, соответственно в оптимизации участвует и сам хостинг, то есть смотришь с какой скоростью, что загружается, сколько ресурсов при этом съедается, при этом можешь узнать пиковую нагрузку которую сможет выдержать сайт, конечно же это не для новичков. Опять же весомый аргумент в пользу node.js, это прежде всего сам javascript благодаря которому можно вести разработку не только для веба, но и для различных устройств. Сегодня развитие идёт к тому, что постепенно все окружающие нас устройства потихоньку засасываются во всемирную паутину, например автомобили, умные дома, измерительные приборы, наружная реклама и т.д. и т.п.. Опять же одним JS не обойтись, но благодаря расширяемости node.js многое невозможное становится возможным. А вообще достаточно взглянуть на рейтинг, разница в цифрах незначительна, но видно стремительное падение в развитии PHP за крайний десяток лет https://tiobe.com/tiobe-index
OnYourLips, Тоже спорный вопрос, node также прекрасно работает с логикой и под одну кнопку можно напихать кучу вариантов исполнения в зависимости от условий, только я бы не использовал if в своём проекте, циклы сильно тормозят, а делал бы константы и прерывание, переход на другую строку кода при несоответствии константы и по окончанию прохождения, по совпавшим и отработанным константам выполнял бы свой сценарий из совпавших констант. Получается один запрос на сервер за исходником, отработка алгоритма на стороне клиента и соответственно отработка сценария выполнения задач в зависимости, что выбрал клиент. Правда это относится ближе к js, но в связке с node в случае сложной логики, когда отрабатывается множество операций на один клик, опять же желательно чтобы они выполнялись на стороне клиента, чтобы пока он думает все модули сценария были уже загружены на его сторону. Тем более под каждую отдельную задачу можно написать свой модуль node, что делается ой как легко, который можно переносить из проекта в проект. Различие существенное в выборе способа программирования СОП и ООП. Событийный способ значительно выигрывает у объектно-ориентированного программирования. Отсюда и прекрасная масштабируемость до невероятных размеров, достаточно взглянуть на ряд браузерных игр.
OnYourLips, я бы так не сказал, если так оно и было, то Google был бы в заднице со своими нововведениями, но он почему-то лидер. Требования к рядовым сотрудникам растут и свято место пусто не бывает, если говорить уж о корпоративном секторе. На фрилансе, когда заказчику нужен сайт визитка или магазин на WP, то абсолютно согласен, там требования невысоки. В студиях так же, но не в корпорациях. Соответственно и оплата труда гораздо ниже и нестабильнее в таких студиях и на фрилансе, если брать за длительный период при тех же усилиях труда, чем в крупной корпорации. Достаточно взглянуть на Samsung, когда их сайт упал из-за нагрузки почти в самый ответственный момент, оказалось - чуть-чуть не рассчитали нагрузку. Простые задачи решаются - легко, достаточно загуглить, сложные требуют гораздо больше сил и времени на реализацию.