Search
Write a publication
Pull to refresh

Comments 21

Мы выбрали Vue, потому что он казался проще и удобнее... Все фронты Точки работали с React, а Vue использовала только наша команда бренда... UI-kit банка поддерживал только React

Это как так могло получиться? Все фонты забили болт на "бренд" и делали как хотят? Или "бренд" появился позже, но почему тогда был выбран Vue, если не планировалось всех на него пересаживать?

Несмотря на то, что поисковики научились обрабатывать javascript, в начале двадцатых это работало не всегда хорошо, поэтому контент сайта не индексировался, индексировался не полностью или неправильно.

Что вы выдаёте поисковику, то он и индексирует. Г и Я умеют исполнять JS, все остальные не умеют и для них делается отдельная выдача. Подробнее в этом анализе.

Производительность: оба фреймворка предлагают инструменты для улучшения производительности (код-сплиттинг, серверный рендеринг, кэширование).

Скорость показа страницы к производительности имеет мало отношения. Но в целом, SSR в большинстве случаев замедляет открытие, чем ускоряет.

С чего это SSR замедляет-то? HTML можно отдавать хоть из memcache, хоть из redis -- быстро и просто.

Потому что пользовательские данные постоянно меняются и различаются для разных пользователей. Вы тут особо ничего полностранично не закешируете.

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

Ага, чужая корзина закешируется или чужая лента новостей.

Кто кеширует корзину? Чего ради? Не перегибайте палку.

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

Причина выбора vue / react не убедительна. Нейросеть писала?

Низкая производительность - оба фреймворка имеют примерно одинаковую производительность, там нет кратной разницы

Сложность поддержки - когнитивный диссонанс, появилось немного раньше, но опыт оптимизаций накопился больше?

Доступность специалистов - причем тут внешний рынок кандидатов и обучение команды? То есть альтернатива была - уволить всех vue и нанять вместо них react?

так как UI-kit банка поддерживал только React

Все фронты Точки работали с React, а Vue использовала только наша команда бренда

Вот с этого и надо было начинать. Очевидно, что никто не будет переписывать все, ради одной команды бренда. Выбор основан не на производительности или доступности специалистов, а на эффективном расходовании средств и времени. Только зачем тогда писать про сравнение технологий?

Ждал технических подробностей, а прочитал Бла-бла. Но очень много знаков.

А каких именно технических деталей не хватило? Учтём в следующих публикациях

Да любых технических. Вы описали поверхностно с точки зрения менеджера, а интересны были именно технические подробности. Какие технические проблемы были решены за счёт перехода, какие наоборот, приобретены. Организационные я понял -- вокруг реакт и только одна команда на островке Vue.

Спасибо! Возможно, напишем еще одну статью на эту тему, но уже сильнее углубимся в техническую реализацию.

Даже как то обидно стало Точку, что там такие тимлиды работают.

Более актуальное название "как не умея писать на vue можно превратить проект в реакт помойку"

Как превратить статью в профанационную помойку.
Разбираем по пунктам.
Различия в производительности заметны были на старых версиях vue и react, но при условии более 10 миллионов активных пользователей интерфейса. И то, и другое - создано для работы с динамическими данными, а никак не со статикой.
SSR - это костыль для того, чтобы не отделять статику от динамики. Фреймворки вроде next - инвалидная коляска для торопливых или зажатых в сроки разработчиков с низкой квалификацией. SSR в проектах вроде вашего съедает немного ресурсов, но уже требует постоянного scaling up при увеличении количества пользователей.
Как только вы столкнулись бы с более 100 млн посещений, расходы на масштабирование превысили бы экономическую выгоду проектов. SSR хорош для небольших систем.
Redis - костыль для динамических данных, но он хорош там, где вычисляемые данные статистически однотипны. Немного удешевляет масштабирование.
Разницы в react и vue нет никакой, если это не проект масштабов vk и прочих многопользовательских систем. Но порог входа в Vue гораздо ниже, чем у React.
У вас скорее вопрос управления кадрами. Так как вы не обучаете кадры, а пытаетесь найти готовых. Что в результате приводит к изменению парадигмы.
Если говорить о рендеринге данных для магазинов, то даже в этом случае применение SSR не всегда оправдано. Намного дешевле и практичнее передать вычисления клиенту - для чего и создавались js-фреймворки, как раз для удешевления масштабирования.
По-хорошему, у сервера должна быть одна функция - обрабатывать и отдавать данные. А представление - это дело браузера.
Но рендерить на сервере статику - это кощунство, если речь про статьи и журналы.
Я не очень понимаю, зачем там вообще динамика, кроме как для комментов.
Итог: в любом проекте надо выбирать оптимальный стек технологий, обучать junior до нужного скила, минимизировать расходы на масштабирование, а главное - микросервисная архитектура проектов, тогда и не будет помойки!

Разницы в react и vue нет никакой, если это не проект масштабов vk и прочих многопользовательских систем

Вы хотите сказать, что если вк переписать на vue, то он перестанет адски лагать?

Вы все правильно говорите. Технология здесь ни при чем. Тут вопрос в том, что подобные сервисы пытаются в интерфейс напихать максимальное количество функций, требующих памяти. ВК не исключение, это не интерфейс, а калейдоскоп требующих оперативной памяти различных скриптов. Chromium тем и прославился, что он все пихает в оперативку , отнимая ее у других приложений. И конечно же, громоздкие интерфейсы не будут работать быстро в современных реалиях на любом фреймворке. Просто сервисам нужно пересмотреть принципы реализации "идей" в интерфейсах в сторону производительности и удобства. Но это не за горами. Они вынуждены будут это сделать, так как мощности уже не поспевают за "гением" идеологов, маркетологов и разработчиков сервисов.
Один GSAP, понапихнутый во все статические лендинги и многие страницы сервисов под давлением "дизайнеров" - это уже показатель.

У VK совсем и не громоздкий интерфейс. А если его переписать на $mol, то тормозить он таки перестанет, ибо отзывчивость приложений на $mol не зависит от объёма выводимых данных.

Кстати, согласен с вами. Высокоуровневые фреймворки - это следующий шаг в будущее. Ведь когда экосистема надстроек нарастает, то зачастую теряется изящность низкоуровневых парадигм и производительность. И $mol очень хорошо себя показывает, при этом выполняя достаточный для приложений объем задач.

Мы выбрали Vue, потому что он казался проще и удобнее - так он и остался таким, вы просто повелись на хайп.

Почему проще и удобнее? Vue комьюнити сосредоточились на едином наборе инструментов: Vue - ядро, Vuex - стейт менеджер, Vue Router - роутинг для SPA, Nuxt - SSR (который, простите, за обе щёки дает NextJs, который сразу даёт всё что нужно и не ломается каждый год). Т.е. ты просто берешь иструмент и кодишь, не выступая на конференциях как избежать ререндеров и не приседать, чтобы в метаданные страницы прописать нужную инфу (кстати, как там в app роутере nextjs выставить дескрипшн страницы для клиентских компонентов?).

Ну и по поводу производительности тоже смешно - во Vue нет ререндеров и всё работает крайне быстро. Вы можете в этом убедиться, сравнив отзывчивость интерфейса Озона, который написан на Vue и Яндекс Маркета с ВКшкой, которые на реакте (только не включайте реакт дев тулз чтобы у вас браузер не завис от подсветок ререндера :))

P.S. До сих пор угараю с Дена Абрамова, который совершил каминг аут, и, уйдя в закат, сообщил народу, что redux - это наивная шляпа, что не нужно жопой есть какстус, а миллионы мух могут ошибаться 😂

Sign up to leave a comment.