Как стать автором
Обновить
819.18
OTUS
Цифровые навыки от ведущих экспертов

Laravel Jetstream. Зачем?

Время на прочтение4 мин
Количество просмотров11K
Всем привет! В преддверии старта курса "Framework Laravel", продолжаем цикл статей про новинки в Laravel 8 от нашего эксперта и по совместительству активного участника российского сообщества Laravel — Виталия Юшкевича.


Эта статья — продолжение обзора новинок Laravel 8. Изначально задумывалось, что в этой статье будет продолжение обзора, затрагивающие преимущественно Jetstream. Но за последнее время это не сделал только ленивый.


С одной стороны, большая часть разработчиков ленивая (в хорошем смысле этого слова), с другой, "еще один обзор" много пользы не принесет. Так как последнее обновление очень горячо обсуждается в разных комьюнити (русскоязычное и за его пределами), то мне захотелось попробовать получить ответ на вопрос — почему? Давайте вместе попробуем найти ответ на этот и другие вопросы.


Laravel Jetstream — что это?


Laravel Jetsream — это современно выглядящий скелет приложения с достаточно широким набором базовых функций. Часть из них опциональны.


Примеры функциональных возможностей из коробки:


  • Авторизация, включая:
    • регистрацию
    • восстановление пароля
    • двухфакторную авторизацию
    • верификацию email
    • отображение списка браузерных сессий, с возможностью логаута на остальных устройствах
  • Управление профилем
    • данные пользователя
    • управление паролем
    • управление аватарками
    • удаление профиля
  • Управление АПИ токенами (интеграция с пакетом Laravel Sanctum), включая управление правами
  • Управление командами с разными ролями

Под капотом используется пакет Fortify (для блока авторизации), выше упомянутый Sanctum. TailwindCss на frontend. И на выбор один из двух фронтенд стеков:


  • Livewire — связка livewire и blade. Рекомендуется, если хочется делать реактивные веб-приложения, но не хочется уходить в дебри vueJs и современного JS.
  • Inertia.js — связка фреймворка Inertia и VueJs. Этот стек напоминает работу с полноценным SPA приложением на Vuejs с сохранением роутинга на стороне Laravel.

Краткий обзор на Laracast


Что это значит и почему столько шума?


Произошло качественное изменение (это определение не содержит оценочной характеристики направления этого изменения) идеологии и подхода к разработке веб-приложений.


За последние годы сформировался некоторый принятый и привычный подход к разработке, который был в изначальном релизе выкинут. В пакет UI (старый подход) добавили поддержку новой версии laravel после большой волны негодования со стороны сообщества, но осадочек остался. И приписка о нежелательном использовании, которая была также смягчена под тем же самым давлением негодования сообщества.


Taylor (основной maintainer Laravel) сделал ставку на не самые популярные фреймворки и технологии, но близкие к его взглядам (TailwindCss и Livewire, например, часто упоминались в разработках его коммерческих сервисов).


С точки зрения новичка, безусловно, возросла точка входа во фреймворк.


Я бы сказал больше — эта точка входа изменилась и стала другой.


Стоит отметить, что после выхода 8 версии фреймворка прошло более 3 недель и риторика несколько изменилась. Желание идти на встречу Тейлора (тут должна быть звездачка для примечания), некоторые произведенные уступки сообществу.


Так, например, после релиза Laravel 8 по сети разошелся пост от Ross Wintle с критикой (ссылка на этот пост, в том числе, была на хабре). 6 Октября вышел апдейт поста, в котором были сглажены многие углы — https://rosswintle.uk/2020/09/laravel-8-jetstream-and-learning-laravel/


Также было достаточно активное обсуждение на reddit. 5 октября Taylor провел почти часовой стрим, где объяснял свою позицию, рассказывал, почему это хорошо и отвечал на другие вопросы, связанные с Jetstream.


Зачем?


Ответ на этот вопрос одновременно прост и сложен. И при этом у каждого может быть своим


Тейлор достаточно самодостаточен в выборе вектора развития своего детища (тут тоже без количественной оценки плохо это или хорошо). Он выбирает инструменты, которые нравятся ему, и готов легко выпилить то, что ему не нравится, не спрашивая мнения у сообщества. Но все же он пытается подходить ответственно к принимаемым решениям и слушать сообщество, даже если это происходит "после" и происходит некоторый откат. Окажется ли Тейлор прав и "новатором" в выбранном векторе развития фреймворка — сейчас сложно сказать, на этот вопрос даст однозначный ответ только время.


Я нахожу в этом релизе определенный знак по движению фреймворка в его некоторую специализацию. Laravel становится более ярко выраженным "фреймворком веб-разработчика", который позволяет за минимальное количество написанных строк кода и времени создать прототип веб-сайта, веб-приложения или даже SAAS сервиса. В Ларавел также сохраняются инструменты для быстрого создания API для SPA, мобильных приложений. Ларавел действительно позволяет это сделать быстро и по-своему элегантно.


Тейлор создал ряд коммерческих продуктов, которые держат нагрузку и работают достаточно быстро. Поэтому ответ "можно ли создать на Laravel нагруженное приложение" имеет наглядные ответы.


С другой стороны, проблемы Laravel некуда не уходят. Стало еще больше магии, трейтов, фасадов. Все это не лучшим образом сказывается на производительности и потребляемых ресурсов. Вопрос является ли Laravel отличным выбором для разработки высоконагруженного сервиса уже не является таким однозначным. Как минимум, разработка такого сервиса потребует более глубоких знаний фреймворка и решения ряда задач способами, не описанными в документации (а порой — существенно различающимися).


Остается ли Laravel "в игре"? — безусловно да!


Этот релиз мне показался скорее наступлением на рынок CMS с обилием проектов на WordPress. Laravel действительно есть что предложить "этому рынку".



Читать ещё:


Теги:
Хабы:
+10
Комментарии1

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS