LINUX.ORG.RU

Конец эры PHP, Ruby, etc на серверах?

 , , , ,


1

5

Захотел тут запилить свой блог с тегами и комментариями, и что бы это все было «реактивно» (React/Vue), чтобы не загружалась вся страница при поиске по блогу, фильтрации постов или добавлении коммента, но при этом что бы роботы поисковиков видели посты и комменты (изначально страница рендерилась на сервере).

И возник у меня вопрос что использовать?

Мне нравиться Laravel(PHP), давно хотел потыкать Rail или Symfony, думаю вот он шанс, и снова НО, как же реактивность?

Если делать бэкенд на PHP/Ruby, то придется и на React/Vue дублировать верстку что бы был нормальный серверный рендер и при этом сохранилась реактивность. Или нет?

Походу выход один запилить сервер на NodeJS, с серверным рендерингом Vue/React.

Но мне не нравится сервер на NodeJS, какие то личные мотивы и скепсис к NodeJS на сервере. Может просто привык к Laravel(PHP) и еще это непреодолимое желание познакомиться с другими фреймворками. Только вот разовая встреча с ними мне не интересна, ведь если все мертво или умирает кроме NodeJS зачем это изучать?

Это что получается PHP, Ruby, etc веб бекенд мертв, остался только NodeJS? Может есть еще им где то место в каких нибудь API или полностью статичных сайтах? Или я просто ошибаюсь с дублированием верстки и чего то не знаю?

дублировать

Нет. Верстать на мёртвоПХП не нужно даже если бэкэнд на нём.

x3al ★★★★★
()

мне кажется, что можно определять робота по заголовкам запроса или IP (есть списки для роботов), и для них отдавать статику хоть голым текстом без разметки. а для обычных клиентов по тому же URI - нормальную страницу с реактом

bvn13 ★★★★★
()
Ответ на: комментарий от bvn13

а для обычных клиентов по тому же URI - нормальную страницу с реактом

Разве «нормальная страница» с реактом это не SPA? Ты предлагаешь делать ресурс полностью в 2-х вариантах с клиентским и серверным роутингом?

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)

Мб я что-то не понимаю, но какая разница на чём бэкэнд, php/java/турбопаскаль? Реакт ведь на клиенте.

chrisred
()
Ответ на: комментарий от Martin256

да поисковикам имхо пофиг, что ты отдаешь. им нужно слова и фразы проиндексировать.

bvn13 ★★★★★
()
Ответ на: комментарий от vvn_black

я пока не понял, как индексировать СПА, если страница рендерится только на клиенте. поэтому, да, предлагаю.

bvn13 ★★★★★
()

как же реактивность?

Что за реактивность то? «чтобы не загружалась вся страница при поиске по блогу, фильтрации постов или добавлении коммента, но при этом что бы роботы поисковиков видели посты и комменты»? Что вам мешает отдавать страницу с сервера целиком (для поисковиков, для тех кто первый раз открывает страницу) а при поиске, работе с комментами и так далее модифицировать ее через js? Какая тут разница что за ЯП на бэкенде?

Если делать бэкенд на PHP/Ruby, то придется и на React/Vue дублировать верстку

Если у вас верстка на бэкенде то это не бэкенд уже. Бэк добжен в базу ходить и всякими рассчетами\логикой заниматься, верстка на фронте. Или у вас как у многих пхпшников код это лапша из php + html + js + css + rawSQL + вотэтовсе?

micronekodesu ★★★
()
Ответ на: комментарий от bvn13

страница рендерится только на клиенте

реакт рендерится и на сервере спокойно. сервер отдает клиенту пререндеренный контент, а дальше он уже рендерит сам.

moot ★★★★
()
Ответ на: комментарий от micronekodesu

Если у вас верстка на бэкенде то это не бэкенд уже.

Ну, SSR же.

vvn_black ★★★★★
()
Ответ на: комментарий от moot

реакт рендерится и на сервере спокойно. сервер отдает клиенту пререндеренный контент, а дальше он уже рендерит сам

И после этого некоторые умудряются называть php тормозным?

chrisred
()
Ответ на: комментарий от ggrn

НО ЗАЧЕМ?

это SPA, которая индексируется без костылей.

moot ★★★★
()
Ответ на: комментарий от micronekodesu

Что вам мешает отдавать страницу с сервера целиком

Как потом подхватить отрендеренную страницу через Vue/React, что бы не перерисовывать у пользователя?

как у многих пхпшников код это лапша из php + html + js + css + rawSQL + вотэтовсе?

HTML с данными как пользователю то отдавать? Там в любом случае будет php но только для вывода значений. И что бы поисковикам было ок и пользователь на «реактивном» сайте.

Martin256 ★★
() автор топика
Ответ на: комментарий от bvn13

и для них отдавать статику хоть голым текстом без разметки

Так поисковики же, вроде, учитывают то, как выглядит страница, разве нет?

Deleted
()

Древние версии пакетов и ядер в релизах Red Hat поддерживаются годами.

anonymous
()

Сделай два сервера, один на ноде с серверным рендерингом реакта, второй на PHP/Ruby/Go/Java/... с бизнес-логикой и API. На nginx настраиваешь проброс location /api/ ко второму серверу, location / к первому.

deadNightTiger ★★★★★
()

Для блога можно вообще все что угодно. Главное все равно контент.
Но так да, если бы я знал про Hexo до Jekyll, то делал скорей всего многое бы на нем. Я прям в восторге с Hexo.

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

суть не в блоге, а вообще, в немного динамичных сайтах адаптированных для сео

Martin256 ★★
() автор топика

Пиши backend-api на чем хочешь, а для фронтенда возьми nuxt.js (nodejs+vue), получишь свое апи на нужном тебе языке, ssr, seo, но придется тащить с собой ноду.

anonymous
()
Ответ на: комментарий от Martin256

подхватить отрендеренную страницу через Vue/React

Так вы чего хотите, использовать какой-то свой набор инструментов или решить какую-то задачу? Если вам нужно какой-то фреймворк использовать который работает через ноду на сервере то нужна нода, но это не значит что без ноды сейчас вообще ничего не сделать.

HTML с данными как пользователю то отдавать? Там в любом случае будет php но только для вывода значений.

Да без разницы что за ЯП вам шаблоны генерит или что там у вас. Должен быть бэк, который вам данные соберет, и фронт, который эти данные подготовит для отображения пользователю. Если вам нужен php и при этом нужно js на сервере гонять то не обязательно менять php на ноду, надо нормальную структуру проекта делать. Если вся друг на друга поназавязано чуть ли не что выбор движка ORM зависит от css-фреймворка то это грустно все и делать так не надо.

micronekodesu ★★★
()
Ответ на: комментарий от micronekodesu

да, все верно, это не верное понимание у меня было. Выше deadNightTiger предложил правильный вариант структуры

Martin256 ★★
() автор топика
Ответ на: комментарий от t184256

как же, что бы шлак был еще большим шлаком, на генетическом уровне.

Martin256 ★★
() автор топика

Если хотите изоморфное приложение, то берите React+Node - идеальная связка для этого. Но вам же нужен просто SPA, поэтому все равно, что будет на бэкенде.

Hashirama
()

Пиши на кложе с кложскриптом. Там изомормфы возможны. Тот же реагент, вроде, катит.

nihirash ★★★
()
Ответ на: комментарий от Martin256

подхватить отрендеренную страницу через Vue/React

If you call ReactDOM.hydrate() on a node that already has this server-rendered markup, React will preserve it and only attach event handlers, allowing you to have a very performant first-load experience.

https://reactjs.org/docs/react-dom.html#hydrate

zarkone ★★
()

Я до сих пор пишу недорогие сайты под заказ на PHP и немного чистого JS, без всяких фреймворков, ORM, API, и прочего хипстерства, которые только усложняют сайты на ровном месте.

anonymous8 ★★
()

Я за python/aiohttp , у wargaming на этой связке по 1.5М в сутки трафика держится или на крайняк Golang.

NetSurf
()
Ответ на: комментарий от bodqhrohro_promo

если вся логика обмазана JS,то такой пользователь не сможет увидеть ничего, если контент генерится на клиенте. а если на сервере - то особо разницы нет, с реактом его там рендерить на сервере, или без. пользователю текст же нужен.

bvn13 ★★★★★
()
Ответ на: комментарий от bvn13

Ты предлагаешь SSR отдавать только для ботов, а пользователям всегда отдавать голую страницу со скриптами. Чтобы на ней изначально была какая-то статика без дублирования рендеринга — тоже нужен SSR.

bodqhrohro_promo
()
Ответ на: комментарий от oster2011

в nuxt много еще не доработано, но так да, перспективная вещь если его доведут до ума. Кстати как у RoR с разработкой апи интерфейсов? не слишком он тяжелый для этого? Когда его смотрел там был очень мощный инструмент построения форм, и хороший шаблонизатор, но если делать в связке с nuxt в этом необходимость пропадает

Martin256 ★★
() автор топика
Последнее исправление: Martin256 (всего исправлений: 1)
Ответ на: комментарий от Martin256

еще как. А вот руби уже присмерти

Deleted
()

Имхо, самый дешевый способ запилить бложик - это ресурсы типа medium или на гитхаб-пейджес. И не нужно ни с чем таким пердолиться.

Для скрещивания ежей с ужами (например симфони+реакт -> https://github.com/Limenius/symfony-react-sandbox) есть свои библиотеки, нужно только чуток гуглить уметь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.