Pull to refresh

Comments 32

главное отличие в том, что мы больше не создаем "спагетти-код".

поперхнулся смузи

Мы используем проверенные временем принципы разработки UI и современные инструменты.

php'шному symfony 20 лет, реакту около 10, а серверному (ну так, чтобы в проде, а не в бложиках) и того меньше. ни современности, ни старых надежных принципов

про js и "проверенные временем принципы разработки" особенно смешно

А теперь добавьте нового комментария с клиента: нужно либо заново прописывать HTML-структуру в JavaScript, либо использовать хитрые трюки вроде скрытых шаблонов. Это был настоящий головняк, особенно если HTML-классы менялись.

/get_new_comment -> (HTML-block) -> element.innerHTML = result

Головняк - обалдеть. Не, ну можно конечно на каждый пук создавать DOM в браузере заново (и многие так и делали)

Результат мы все видели (жаль, что не все уже помнят, что этого можно было избежать):

SSR должен был вернуться и он вернулся. Жаль только, что в статье js рассматривается как единственный теперь язык (экосистема и тп).

В статье почему-то не написано самое существенное чем Next.js отличается от PHP. Каким образом стираются границы. Про единый код рендеринга как на сервере, так и клиенте. Про прозрачные для разработчика обновления данных на клиенте.

Писать "спагетти-код" на React тоже можно, ровно как и хорошо организовать код на PHP. А вот преимущества работы Next.js проекта как единого приложения с общим кодом одновременно на сервере и клиенте на PHP не получить, даже с htmlx.

Или все еще держитесь за PHP? 

В самом PHP уже 100500 лет как не принято делать серверный рендеринг страниц. Более того, деление на фронт и бек добавляет гибкости, когда появляется возможность в как можно меньшем числе частей системы использовать такое г.. как JavaScript, и на бэкенде появляется большая свобода выбора между PHP, Go, .NET, Python, да хоть C++.
Кроме того, в проектах чуть сложнее магазинчика "У Васи", имеется тенденция делать несколько разных фронтендов, не только веб, но и нативные мобильные клиенты например. И вот нативным мобильным приложениям этот ваш серверный рендеринг не уперся от слова совсем.

Типичный стек включал серверный язык (PHP, Java или даже Perl)…

У людей как будто память стёрли. Никто не помнит ASP и что сайты писали на том же JavaScript (ну и VBScript ещё) что ли? Ещё Netscape выпускал сервер, где использовался JavaScript, там ещё тег был <SCRIPT RUNAT=SERVER>.

Скоро интересно появятся статьи: Это революционно! Можно писать приложения, которые работают без интернета и не в браузере!

Это вы про те, которые начали писать когда node.js появился?)

Нет:) ИМХО. Это про те, которые компилируются и запускаются с хард драйва/ссд.

жду не дождусь, и так же "инновация": смотрите можно писать не веб приложения на электроне...

>> А что вы думаете об этой тенденции? 

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

Так уж повелось, что код на JS исполняется браузерами. Быстро и хорошо исполняется. Отлично. Эта ситуация останется еще на десятки лет доминирующей.

Но заставлять живых людей писать на JS и даже придумывать целые "фреймворки" (не являющиеся таковыми) для этого?

Нет, это не магистраль. Магистраль - это судьба JS, как языка промежуточного представления кода. Как нового ассемблера.

Посмотрите, к примеру, на Symfony Live Components, библиотеку, позволяющую бэкенд-разработчику создавать сложные и "живые" интерфейсы, не написав ни строчки кода на JS вручную.

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

Между прочим, так примерно и развивается IT последние лет 50. Ничего нового.

В современном "большом" фронте уже несколько лет как отказались от js в пользу ts. Вполне себе настоящий язык, с довольно продвинутой системой типов

а уж во что оно там транслируется - стараемся не задумываться

Боже упаси. Страшно от того что он там нагенирирует...

Реакт на сервере - это старый добрый PHP.

По моему, вставки html в код - это не react, а jsx.

Чтобы его использовать, как любые другие библиотеки нужно сначала подключить, настроить сборщик. Для использования php подключать/собирать ничего не нужно, работать с php гораздо проще.

UFO landed and left these words here
UFO landed and left these words here

Не очень понял ни комикс, ни проблему.

UFO landed and left these words here

Простите, не очень точно наверное выразился - я всё ещё не понимаю суть комикса (почему все остальные становятся сиреневыми?) и проблемы await.

UFO landed and left these words here

приходится обмазывать этими операторами всё подряд (отсюда комикс).

Не все подряд, а только вышестоящие функции / методы. И все еще не понимаю проблемы.

однопоточный код

Он и остается однопоточным, event loop != многопоточность.

fullstack

Что вы имеете в виду под этим словом? Backend?

UFO landed and left these words here

обычная корутина

Вот я этого не понимаю - что вы имеете в виду под "корутиной" в контексте JS?

Мы вообще сейчас про серверную часть говорим?

UFO landed and left these words here
UFO landed and left these words here

systemd на самом деле ещё тот монстр, который вмещает в себя какое-то огромное количество функционала вплоть до лёгкой контейнеризации, что противоречит юникс идеалогии: "делай одну вещь и делай её хорошо". По хорошему systemd бы разделить на несколько программ, потому что большинство пользователей используют её только для работы со службами.

Systemd правда хороший пример монстра.

UFO landed and left these words here

Нуу... Реактивность можно и на реальном DOM делать. От этого она не престанет порождать кучу глюков (с точки зрения конечного пользователя), не перестанет требовать в разы бОльшего времени на ручное тестирование (любое другое всегда было пустой тратой времени) для того, чтобы выявить хотя бы десятую часть тех багов с которыми столкнется end user (нет, это не корнер кейсы... ВНЕЗАПНО!).

Ответственные за сайт Озона годами не могут решить проблему рандомного отображения первой страницы (товаров с первой страницы) на страницах 13-15 и т.п.
Глубокую фильтрацию я еще 3 года назад перестал использовать - это было психоделическое нечто, работающее неизвестно как. Самый распространенный баг того времени - при последовательной отмене фильтров снизу вверх... ВНЕЗАПНО! получаем мЕньшее кол-во результатов, а то и вообще эпичный 0.

Но говно, к тому же мертвое - это jQuery и PHP. Не перепутайте!

P.S.: Возможно фильтрация сейчас уже работает нормально (использую только несколько верхних уровней), но со сломанной пагинацией сталкивался в прошлом году пару раз.

Фреймворки также стирают границу между фронтендом и бэкендом.

И это ужасно, потому что проекты превращаются в одну большую кашу без разделения ответственности. Да и при разделении бэкенда и фронтенда, мы можем менять ЯП. Не нравится PHP на бэке, можно переписать всё на Go, ASP, C++, Python, Node и т.д. Не нравится React на фронте, можно заменить хоть ванильным js.

Теперь один разработчик может реализовать функциональность "от и до": от запросов к базе данных до UI-интеракций.

Если бэкенд и фронтенд пишутся на одном ЯП, это не значит, что у них одинаковая специфика. Только знание ЯП не даёт понимание всех сфер, где он применяется.

Может показаться, что React Server Components с SQL-запросами похожи на старый добрый PHP с его смешением HTML, CSS и SQL.

Я рад, что описанные в статье js фреймворки добрались до уровня php дястелетней давности, но в современном php давно принято использовать OOП, шаблонизаторы, подходы по разделению логики по типу MVC и т.д. Как понимаю в реакте, даже OOП без костылей использовать нельзя поэтому сравнение с PHP очень странное.

Но главное отличие в том, что мы больше не создаем "спагетти-код".

Ещё как создаёте и даже порой более ужасный, чем создавали php программисты 10 лет назад. Когда увидел SQL запросы, вставленные в html теги, что воспринимается, как норма, ужаснулся куда катятся фулстек решения на js.

П.С. У js тоже есть хорошие решения, например нода для бэкенда, анагуляр для сложных и средних проектов на фронте и вуе для простых и думаю можно ещё десяток назвать хороших. Но статья - явный байт на холивар.

Когда увидел SQL запросы, вставленные в html теги, что воспринимается, как норма, ужаснулся куда катятся фулстек решения на js.

ну это не новое решение и не только js - тоже когда-то казалось это удобным, пока не налетел на грабли поддержки старого кода.

Просто "милленниалы изобрели грабли" )

На работе пишу backend на php.

Для себя работаю на node js. - влюбился

Sign up to leave a comment.

Articles