Жизнеспособен ли подход: толстый backend и тонкий frontend
На митапе (проводим их регулярно) Саша Черняев, эксперт в мире Laravel, рассказывал про Hotwire. Если кратко: сервер рендерит HTML, а браузер получает обновления частями и добавляет немного JS для поведения – вместо SPA с большим клиентским состоянием.
Я уже сталкивался с Hotwire и, чтобы опробовать, делал внутреннюю систему на стеке Symfony + Hotwire.
Из доклада узнал, что появилась поддержка мобилок. Приложения выглядят классно. Но, как понимаете, без интернета не работает от слова «совсем».
Какие впечатления от технологии сложились у меня:
➕ Плюсы
1. Работает очень быстро. По ощущениям все летает
2. Нет тяжёлой «первой загрузки» SPA-бандла
2. Не нужно возиться с Webpack/React/... и их настройкой
3. Не требуется разрабатывать API для общения бекенда и фронта
4. Готовое решение для мобилок (правда веб-ориентированное)
➖ Минусы
1. Не подходит для сайтов, которые и не сайты, а скорее приложения, аля Figma или RetailCRM со сложными интерфейсами. Логика становится запутанной
2. Разработчикам требуется достаточно уверенно чувствовать себя в обоих стеках (бекенд и фронтенд)
Когда целесообразно использовать
1. В проекте есть и бекенд, и фронтенд
2. Фронтовая логика не очень сложная
3. Проект небольшой или средний (условно до ~300k строк)
4. Команда разработчиков небольшая
5. Разработчики фуллстеки (умеют и во фронт, и в бекенд)
В таком случае Hotwire помогает быстрее стартовать, а интерфейс получается быстрым. Если же вы разрабатываете сложное «толстое» приложение с богатым клиентским состоянием, разумнее сразу смотреть в сторону SPA.
🔗 Инженерия и AI | Ilyas Salikhov
Post #8
392

- 👍 4
- 🔥 2