Комментарии 18
Что удалось сделать
- Запустить JavaScript на сервере в Java мире Одноклассников.
- Сделать изоморфный код для UI.
- Использовать современный стек, который знают все фронтендеры.
- Создать общую платформу и единый подход для написания UI.
- Начать плавный переход, не усложнив при этом эксплуатацию и не замедлив серверный рендеринг.
И ни слова о том, насколько ускорился или замедлился фронтенд непосредственно на «фронте», то есть в браузерах у посетителей. В итоге ожидаем (но не факт) тормозные «Одноклассники». Хотя, впрочем, целевая аудитория ресурса достаточно нетороплива, так что на производительность можно и забить. Действительно, зачем.
запуск React в Java
пролистал статью, про Java не встретилось ничего. Заголовок точно верный?
Вы бросили достойный вызов легаси. Могу пожелать терпения и удачи.
В рамках эксперимента, нашей команде была поставлена обратная задача — запустить java(апплет) приложение в браузере (разумеется никак апплет, а как js приложение. В апплете более 5тыс классов, свой LookAndFeel, Swing и прочие вещи. В это трудно поверить, но с помощью CheerpJ и 2 напильников нам удалось за 2 дня достичь успеха в этом деле.
По проделанной Вами работы, хочется понять в целом — это разумно js под граалем запускать?
Подход к миграции очень похож на Frankenstein migration (https://youtu.be/CaP5eAylYpI)
Скажите, вы опирались как-то на это выступление или сами тоже пришли к подобному способу миграции?
Ну т.е. идея-то давно носилась в воздухе. У оракла даже был другой проект по запуску Node в JVM (успешно заглох).
Согласен, что сама идея не нова. Вопрос в реализации.
И разница в том, что у нас это уже работающая история на огромном проекте.
Рекомендую ознакомиться с первой частью, где об этом подробно описано
habr.com/ru/company/odnoklassniki/blog/480808
Например, для календаря в атрибутах всего лишь выделенная дата, а в store уже матрица с полной информацией за месяц. Очевидно, что ее бессмысленно передавать с сервера.
Вроде бы, считается хорошей практикой хранить нормализованные данные в сторе, а вычисляемые значения считать селекторами (термин из мира redux — но наверняка в modx что-то подобное есть) на лету.
Новый фронтенд Одноклассников: запуск React в Java. Часть II