Какие плюсы дают современные js фреймворк в Rails вместо assets pipeline?
Есть большой проект на Rails, работает уже несколько лет. Сейчас в фронт части используется bootstrap+jquery+some_external_js_libraries. Все работает стандартно, через assets pipeline.
Пришло время оптимизации фронт части. Попутно решил перейти на foundation и чуть позже задумался еще о react || vue || ember.
Если переходить на них, то вот что мне предстоит (как я понимаю):
1. Выбрать подходящий фреймворк (тратить время)
2. Изучить его (тратить время и силы)
3. Внедрить в rails вместо текущей системы шаблонов (отнимет время+в будущем будет только сложнее что-то доделывать)
На фоне таких ресурсных затрат рендеринг на стороне клиента не кажется большим плюсом.
Собственно, вопрос я уже озвучит.
Артём Петренков: ну да. Я не правильно поставил акцент в вопросе. Я хотел спросить, зачем мне выходить за рамки обычного использования rails в сторону фронтенд фреймворка react или т.п. Времени разработки он не сократит, и даже наоборот. Полагаю, что я не вижу каких-то плюсов, ведь все используют эти фреймворки сейчас очень активно.
Артём Петренков: Смотрите, мой ход мысли. Абсолютно любой проект (фронтенд часть) можно сделать и в виде обычной верстки (html+scss+js/coffee) и в виде рендеринга на стороне клиента на любом из известных фрейморках. Отличие лишь в время- трудо- денежных- затратах.
Фреймворки дают некоторые преимущаства. О каких знаю я.
1. Делаю рендеринг на клиенте (разгружают бэкенд)
2. В команде от ~10 разработчиков быстрее работать, разделяя проект на вот такие логичесткие части проекта.
В рельсах в помощь есть assets pipeline и turbolinks. Вместе с гемами и хелперами они помогают сильно сократить время разработки фронтенд части.
Сейчас я задаюсь вопросом, о всех ли достоинствах я знаю. Может я смогу сократить время разработки, если перейду на какой-нибудь фреймворк?
9ne2poi: насколько мне удалось понять, переходить с ассетов на webpack нужно тогда, когда есть более менее серьезный js. Для простого вывода данных с подгрузкой контента аяксом ja-фреймворк избыточен. Например, для сайта типа википедии или кинопоиска.
Пока я дошел до такой стадии: полностью отказался от jquery на продакшен, решил точно не внедрять angular и ember, для верстки использовать foundation без js. И скорее всего использовать vue а не react, но точно использовать реактивное.
vue/react, как я полагаю, мне поможет инкапсулировать на фронтенде программирование интерфейса. Там удобно реализована разработка на компонентах: когда ты пишешь не привычным способом, html в одном файле, css в другом, js в третьем и сразу для всего сайта (хоть в рельсах для моделей отдельные файлы), а когда для каждого логического элемента DOM (обычный div, например прогрессбар) в одном файле указывается сразу и html и css и js - т.е. и внешний вид и поведение. И уже эти компоненты размещаются в основном шаблоне. Кажется очень удобным и простым.